Использование libcurl в iOS 5 в качестве альтернативы NSURLConnection

Обновление: теперь NSURLConnection правильно поддерживает 100-Continue. В любом случае этот ответ содержит ссылку на скрипт для создания libcurl для iOS / OSX.

У меня возникли проблемы с NSURLConnection , поскольку он не поддерживает раздел 8.2.3 RFC 2616 (HTTP / 1.1).

Обычно клиент должен поддерживать отправку заголовка Expect: 100-Continue ; после отправки заголовков запроса он должен дождаться ответа от сервера с кодом состояния 100 перед отправкой POST / PUT тело.

Кроме того, NSURLConnection (и, следовательно, все библиотеки, которые построены на его основе) не будет возвращать никакого ответа от сервера, пока все данные не будут загружены, что является проблемой, поскольку сервер может отклонить загрузку. сразу (неверные учетные данные, нет места, слишком большой файл и т. д.). Хотя он "работает" для небольших файлов (содержимое полностью загружено и вызывается метод делегирования с ответом), для больших файлов вместо получения ответа об ошибке от сервера (в котором я уверен, что отправлено ) , Я просто получаю сообщение об ошибке «Ошибка подключения».

Я знаю, что libcurl должным образом поддерживает спецификацию 100-Continue , поэтому мне нужна помощь в его компиляции и настройке и запуске в проекте iOS 5.

Я начал с этого сообщения (прокрутите вниз), но мне не удалось далеко уйти ...

Внес эти изменения ...

export CC=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc-4.2
export CFLAGS="-arch armv7 --sysroot=/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk"
export CPP=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-cpp-4.2
export AR=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/ar
./configure --disable-shared --without-ssl --without-libssh2 --without-ca-bundle --without-ldap --disable-ldap --host=arm-apple-darwin10 --build=arm-apple-darwin10
make clean
make
ar rv libcurl.armv7.a lib/*.o

... но компиляция завершилась ошибкой с сообщением

(...)
checking for arm-apple-darwin10-gcc... /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/llvm-gcc-4.2
checking whether the C compiler works... no
configure: error: in `/Users/bruno/Downloads/curl-7.21.4':
configure: error: C compiler cannot create executables

Я использую curl 7.21.4, загруженный с сайта Apple с открытым исходным кодом .

Итак, как я могу скомпилировать curl и использовать его в проекте iOS 5, желательно с поддержкой SSL?

11
задан Community 23 May 2017 в 10:29
поделиться