2015-10-03 29 views
5

Czy można wysłać "dane formularzy" z C++ rest SDK (Casablanca)? Mam daną usługę sieciową, która szuka danych postów w "danych formularza", a nie w treści.C++ rest sdk POST dane formularza json

To jest C++ Kod:

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()); 
}) 

Usługa internetowa może wykorzystywać tylko te dane, jak to (nie mogę go zmodyfikować):

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

(To jest tylko przykładowy kod PHP co mogę używać do testowania)

Odpowiedz

4

to jest droga:

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);