2017-06-01 16 views
1

JSONを使用してPOSTメソッドをサーバーに送信してみます。しかし、サーバーはまた、要求するヘッダーとしてmodel, platform and platform versionを必要とします。これらのヘッダーをHTTPRequestに追加するにはどうすればよいですか。郵便配達員で、私はヘッダータブでそれを追加することができます。例えば。 Model: Redmi 4 Platform: android。編集して他の人にも分かりやすくしてください。私はhttps://pocoproject.org/docs/Poco.Net.HTTPRequest.htmlでいくつかの情報を見つけることを試みたHTTPRequestにヘッダーを追加するPoco HTTPClientSession

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

: 以下はHTTPRequestが作成されます私のコードがあります。 https://pocoproject.org/docs/Poco.Net.HTTPMessage.html。しかし結果なし。

答えて

3

解決策が1つあります。それは他人を助けることができます。

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私はそう思います!そうすべき。制限はありません。あなたのサーバー側ではありません –

関連する問題