2015-10-03 42 views
5

C++ rest SDK(Casablanca)で「フォームデータ」を投稿することはできますか?私は体の中ではなく、 "フォームデータ"で投稿データを探している特定のWebサービスを持っています。C++ rest sdk POSTフォームデータjson

これは、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()); 
}) 

Webサービスのみ(私はそれを変更することはできません)このようなデータを使用することができます。

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

(これは単なるサンプルPHPコードです、私がテストに使用)

答えて

4

は方法であること:

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); 
関連する問題