1

c++ を使用して、変数の追加データを HTTP GET に追加したいと考えています。HTTP POST を使用してリクエストを行うときは、次のようにします。

    curl_easy_setopt(curl, CURLOPT_URL, path);
    curl_formadd(&beginPostList, &endPostList, CURLFORM_COPYNAME, "variable1", CURLFORM_COPYCONTENTS, variable1.c_str(), CURLFORM_END);
    curl_formadd(&beginPostList, &endPostList, CURLFORM_COPYNAME, "variable2", CURLFORM_COPYCONTENTS, variable2.c_str(), CURLFORM_END);
    curl_formadd(&beginPostList, &endPostList, CURLFORM_COPYNAME, "variable3", CURLFORM_COPYCONTENTS, variable3.c_str(), CURLFORM_END);

    curl_easy_setopt(curl, CURLOPT_POST, true);
    curl_easy_setopt(curl, CURLOPT_HTTPPOST, beginPostList);

しかし、GETメソッドを使用して同様のことを行うにはどうすればよいですか?

4

2 に答える 2

1

これの一部のサポートが存在するようになりました (curl バージョン 7.62 以降)。'?'とは'&'自動的に追加されますが、現在、パラメーターと値を個別に追加する方法がないため、'='その間に を作成する必要があります。

// Create URL
CURLUcode result;
CURLU *url = curl_url();
char *urlStr;

result = curl_url_set(url, CURLUPART_URL, "https://example.com/hello.json", 0);

if(!result) {
    const char paramValue1[] = "param1=value1";
    const char paramValue2[] = "param2=value2";

    // Add paramters
    result = curl_url_set(url, CURLUPART_QUERY, paramValue1, CURLU_APPENDQUERY);
    result = curl_url_set(url, CURLUPART_QUERY, paramValue2, CURLU_APPENDQUERY);

    // Convert URL to string for printing
    result = curl_url_get(url, CURLUPART_URL, &urlStr, 0);

    printf("New URL: %s", urlStr);
}
curl_url_cleanup(url);

// Output: New URL: https://example.com/hello.json?param1=value1&param2=value2

参考文献

[1] https://curl.haxx.se/libcurl/c/curl_url_set.html

于 2019-04-05T12:39:29.100 に答える
1

次のGETように、パラメーターを URL に追加するだけです。

http://some.host.com/some/path?variable1=value1&variable2=value2

私はあなたが前にそれを見たことがあると確信しています!

于 2013-10-25T06:45:40.430 に答える