5

libCurl を使用して SOAP リクエストを安全な Web サービスに送信するアプリケーションを作成しようとしています。この Windows アプリケーションは、libCurl バージョン 7.19.0 に対してビルドされています。これは、openssl-0.9.8i に対してビルドされています。関連する curl 関連のコードは次のとおりです。

FILE *input_file = fopen(current->post_file_name.c_str(), "rb");
FILE *output_file = fopen(current->results_file_name.c_str(), "wb");
if(入力ファイル && 出力ファイル)
{
    struct curl_slist *header_opts = 0;
    カールコード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 を実行しようとすると、SSL コンテキストの割り当ての失敗に関連しているように見える CURLE_OUT_OF_MEMORY エラーが curl から返されます。他の誰かが以前にこの問題に遭遇したことがありますか?

4

3 に答える 3

8

私は同じ問題を抱えていました.OpenSslエクスポートSSL_library_initを直接呼び出すのではなく、フラグCURL_GLOBAL_SSLをcurl_global_initに追加することで修正できるというメモを追加すると思いました.

于 2011-04-07T11:26:24.007 に答える
3

さらに調査した結果、このエラーは SSL_library_init() を呼び出して openSSL ライブラリを初期化できなかったことが原因であることがわかりました。

于 2008-10-03T12:58:37.710 に答える