https 経由で投稿すると「CURLE_OUT_OF_MEMORY」エラーが発生する
質問
libCurl を使用して SOAP リクエストを安全な Web サービスにポストするアプリケーションを作成しようとしています。この Windows アプリケーションは、libCurl バージョン 7.19.0 に対してビルドされており、libCurl バージョン 7.19.0 は openssl-0.9.8i に対してビルドされています。関連するカール関連のコードは次のとおりです。
FILE *input_file = fopen(current->post_file_name.c_str(), "rb"); FILE *output_file = fopen(current->results_file_name.c_str(), "wb"); if(input_file && output_file) { struct curl_slist *header_opts = 0; CURLcode rcd; header_opts = curl_slist_append(header_opts, "Content-Type: application/soap+xml; charset=utf8"); curl_easy_reset(curl_handle); curl_easy_setopt(curl_handle, CURLOPT_NOPROGRESS, 1); curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, output_file); curl_easy_setopt(curl_handle, CURLOPT_READDATA, input_file); curl_easy_setopt(curl_handle, CURLOPT_URL, fs_service_url); curl_easy_setopt(curl_handle, CURLOPT_POST, 1); curl_easy_setopt(curl_handle, CURLOPT_HTTPHEADER, header_opts); rcd = curl_easy_perform(curl_handle); if(rcd != 0) { current->curl_result = rcd; current->curl_error = curl_easy_strerror(rcd); } curl_slist_free_all(header_opts); }
URL を実行しようとすると、curl は SSL コンテキストの割り当ての失敗に関連していると思われる CURLE_OUT_OF_MEMORY エラーを返します。他にこの問題に遭遇した人はいますか?
解決 2
さらに調査した結果、このエラーはSSL_library_init()を呼び出してopenSSLライブラリを初期化できなかったことが原因であることがわかりました。
他のヒント
同じ問題がありました。OpenSslエクスポートSSL_library_initを直接呼び出すのではなく、フラグCURL_GLOBAL_SSLをcurl_global_init
所属していません StackOverflow