How to solve Error “Incorrect Content-Type: must be textual to extract_string, JSON to extract_json.” in c++

While I was accessing Json webservice from C++ using “C++ rest sdk” ,I came across the error
“Incorrect Content-Type: must be textual to extract_string, JSON to extract_json.”

Reason was The webservice I was calling using “GET” API,Its response Content-type was “text/plain” ,So when I was trying to extract Json data from this response ,I was getting above error.

To avoid the error, we have to  set the Content-Type of response  to application/json explicitly Like following :

pplx::task RequestJSONValueAsync()
// Declare webservice to consume json data from it
http_client client(L"webservice url");
//Set parameters for request
http_request req(methods::GET);

//Fire request on webservice and check the response
return client.request(req).then([](http_response response) -> pplx::task
if (response.status_code() == status_codes::OK )
//set content type json
return response.extract_json();

// Handle error cases, for now return empty json value...
return pplx::task_from_result(json::value());
.then([](pplx::task previousTask)

//get json value from response
const json::value& v = previousTask.get();

string_t jsonval = v.serialize();
wcout << (L"Extracted json data from webservice") << endl;
//Display extracted json from webservice
wcout << jsonval;

catch (const http_exception& e)
// Print error.
wostringstream ss;
ss << e.what() << endl;
wcout << ss.str();

int wmain()
// This application uses the task::wait method to ensure that async operations complete before the
// app exits.

cout << L"Calling RequestJSONValueAsync..." << endl;

return 0;

To get complete code and understanding of consuming json webservice through c++ ,Refer below link

Related Articles

Site Footer