C++ 使用大型主体增强asio post请求
我正在尝试使用boost::asio向localhost:55001/predict发出一个同步的http POST请求,请求的主体很大(大约8784000个字符)。我可以在python中使用C++ 使用大型主体增强asio post请求,c++,http,post,boost,asio,C++,Http,Post,Boost,Asio,我正在尝试使用boost::asio向localhost:55001/predict发出一个同步的http POST请求,请求的主体很大(大约8784000个字符)。我可以在python中使用请求包很好地实现这一点。我的服务器能够很好地处理大型主体,因此我知道问题可能不在服务器端 问题是: 我根据boost::asio POST请求的其他stackoverflow POST设置了我的请求。下面是我如何设置POST请求的主要代码块。编辑:我需要使用Boost,因为我的客户端无法使用C++11 fe
请求
包很好地实现这一点。我的服务器能够很好地处理大型主体,因此我知道问题可能不在服务器端
问题是:
我根据boost::asio POST请求的其他stackoverflow POST设置了我的请求。下面是我如何设置POST请求的主要代码块。编辑:我需要使用Boost,因为我的客户端无法使用C++11
features
变量包含一个很长的字符串(360个JSON表示为以&分隔的字符串)
1) 有人能解释一下如何使用boost::asio在同步POST请求的请求体中发送大量数据吗?我不熟悉C++,所以一个例子会很有帮助。p>
2) Python的请求包是否将这些问题从我这里抽象出来
让我知道,如果有其他信息,我可以提供,以帮助您回答这个问题。提前谢谢> Poost是很好的,但是如果你想做的就是HTTP GET和POST方法(而你使用C++ 11),那么考虑一些类似的事情。它是一个轻量级库,包装libcurl,并以Python请求项目为模型 从中,下面是一个发出POST请求的快速示例
#include <cpr/cpr.h>
auto r = cpr::Post(cpr::Url{"http://www.httpbin.org/post"},
cpr::Body{"This is raw POST data"},
cpr::Header{{"Content-Type", "text/plain"}});
std::cout << r.text << std::endl;
/*
* {
* "args": {},
* "data": "This is raw POST data",
* "files": {},
* "form": {},
* "headers": {
* ..
* "Content-Type": "text/plain",
* ..
* },
* "json": null,
* "url": "http://www.httpbin.org/post"
* }
*/
#包括
自动r=cpr::Post(cpr::Url{”http://www.httpbin.org/post"},
cpr::Body{“这是原始POST数据”},
cpr::头{{“内容类型”,“文本/普通”});
谢谢你的快速回复。我将在原始帖子中添加一个警告,那就是我不能使用C++11。我的客户仍然没有更新到这一点,这就是我尝试使用Boost的原因。如果有一种方法不依赖C++ 11做CPR,那么这将是完美的。如果你不能使用C++ 11,那么你应该尝试本地LIbCURL API,或者调用它的C++包装器。libcurl会做你想做的一切,但你必须自己做更多的举重。好的,谢谢-我会试试的。你知道libcurl是否是一个只有头的库吗?看起来我只需要包含@Aakash282 No,你必须链接到它。request\u stream
response = requests.post('http://localhost:55001/predict', data=features.encode('utf-8'))
#include <cpr/cpr.h>
auto r = cpr::Post(cpr::Url{"http://www.httpbin.org/post"},
cpr::Body{"This is raw POST data"},
cpr::Header{{"Content-Type", "text/plain"}});
std::cout << r.text << std::endl;
/*
* {
* "args": {},
* "data": "This is raw POST data",
* "files": {},
* "form": {},
* "headers": {
* ..
* "Content-Type": "text/plain",
* ..
* },
* "json": null,
* "url": "http://www.httpbin.org/post"
* }
*/