簡體   English   中英

Poco HTTPClientSession將標頭添加到HTTPRequest

[英]Poco HTTPClientSession adding headers to HTTPRequest

嘗試使用JSON將POST方法發送到服務器。 但是,服務器還需要model, platform and platform version作為請求的標頭。 如何將這些標頭添加到HTTPRequest。 在Postman,我可以在Headers選項卡中添加它。 例如。 Model: Redmi 4 Platform: android 隨意編輯以使其他人清楚。 下面是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 但沒有結果。

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

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

這個對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM