2017-06-01 69 views
1

嘗試使用JSON將POST方法發送到服務器。但是,服務器也需要model, platform and platform version作爲標題來請求。我如何將這些標題添加到HTTPRequest。在郵差,我可以將它添加到標題標籤。例如。 Model: Redmi 4 Platform: android。隨意編輯以向其他人表明。 下面有我的代碼誰HTTPRequest創建:Poco HTTPClientSession將標題添加到HTTPRequest

Poco::JSON::Object obj; 
obj.set("login", "log123"); 

obj.set("password","pas123"); 

Poco::Net::HTTPClientSession session("http://hostAddress", 
    80); //giving host name and port number 
Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_POST, 
     "http://requestAddress","1.1"); //initializing request body 
Poco::Net::HTTPResponse response; 


std::stringstream ss; 
obj.stringify(ss); 

request.setContentType("application/json"); 
request.setContentLength(ss.str().length()); 

std::ostream& oStream = session.sendRequest(request);// sends request, returns open stream 

obj.stringify(oStream); 

std::istream& iStream = session.receiveResponse(response); 

我試圖在https://pocoproject.org/docs/Poco.Net.HTTPRequest.html找到一些信息。 https://pocoproject.org/docs/Poco.Net.HTTPMessage.html。但沒有結果。

回答

3

有一種解決方案。它可以幫助別人。

request.add("string:key","string:value") //In order to add headers to request. 

如:

request.add("X-Make","Xiaomi"); 
request.add("X-Model","Redmi 4"); 
request.add("X-Platform","android"); 
request.add("X-Platform-Version","6.0.1"); 

這對我的作品。

+0

你知道它是否只接受名稱以「x-」開頭的標題? –

+0

@BenjaminFoster我認爲是的!這應該。沒有限制。它不在你的服務器端 –