Обновление: теперь 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?