C++ REST SDK发送POST表单数据JSON

7

能否使用C++ rest SDK(Casablanca)发布“表单数据”?我有一个特定的web服务,需要在“表单数据”中查找发布数据,而不是在主体中查找。

以下是C++代码:

http_client client(L"http://localhost/posttest/jsontest.php");

// Manually build up an HTTP request with header and request URI.
http_request request(methods::POST);
request.headers().add(L"Content-Type", L"application/json");
request.headers().add(L"Content-Length", L"100");
request.headers().add(L"Host", L"example.com");
request.headers().add(L"X-Requested-With", L"XMLHttpRequest");
request.set_body(obj);
return client.request(request).then([id](http_response response)
{
    if (response.status_code() == status_codes::OK)
    {
        return response.extract_json();
    }
    else {
        /* Print bad status code */
        wcout << L"Server returned returned status code " << response.status_code() << L'.' << std::endl;
    }
    return pplx::task_from_result(json::value());
})

网络服务只能使用像这样的数据(我不能修改它):

$arr = [$_POST['code']];
header('Content-Type: application/json');
echo json_encode($arr);

这只是一个PHP代码示例,我用来测试的。

1个回答

6
这是方法:
utility::string_t Lreq = L"code=" + Lcode;

http_client client(L"http://localhost/posttest/jsontest.php");

// Manually build up an HTTP request with header and request URI.

http_request request(methods::POST);
request.headers().add(L"Content-Type", L"application/x-www-form-urlencoded; charset=UTF-8");
request.headers().add(L"Content-Length", L"100");
request.headers().add(L"Host", L"testhost.com");
request.headers().add(L"X-Requested-With", L"XMLHttpRequest");
request.set_body(Lreq);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接