Обновление: теперь NSURLConnection корректно поддерживает 100-Continue. В любом случае этот ответ содержит ссылку на script для сборки libcurl для iOS/OSX.
Мне немного сложно с NSURLConnection
, учитывая, что он не поддерживает раздел 8.2.3 RFC 2616 (HTTP/1.1).
В основном клиент должен иметь возможность поддерживать отправку заголовка Expect: 100-Continue
; после отправки заголовков запроса он должен дождаться ответа от сервера с кодом состояния 100
перед отправкой телу POST
/PUT
.
Кроме того, NSURLConnection
(и, следовательно, все libs, которые строятся поверх него) не возвратит никакого ответа с сервера до тех пор, пока не будут загружены все данные - это боль, поскольку сервер может сразу же отказаться от загрузки (недействителен учетные данные, отсутствие места, файл слишком большой и т.д.).
Хотя он "работает" для небольших файлов (контент полностью загружен и вызывается метод делегата с ответом), на большие файлы вместо получения ответа об ошибке с сервера (который я уверенно уверен,)), Я просто получаю сообщение "Ошибка подключения".
Я знаю, что 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?