2017-06-01 88 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我认为是的!这应该。没有限制。它不在你的服务器端 –