如何从http响应中删除垃圾数据
how to remove garbage data from http response
我正在使用从服务器获取信息的 boost asio 编写 win32 c++ 代码。当我使用 LOCALHOST 时,代码运行良好,但是当我连接到在线服务器时,响应在 JSON 响应
的开头和结尾添加了整数
该代码适用于本地主机,不适用于在线服务器。我想知道是不是我的 http 设置有问题
http 设置为
string str = formData(data);
std::ostream request_stream(&request_);
request_stream << "POST " << path << " HTTP/1.1\r\n";
request_stream << "Host: " << server << "\r\n";
request_stream << "User-Agent: C/1.0\r\n";
request_stream << "Content-Type: application/x-www-form-urlencoded\r\n";
request_stream << "Content-Length: " << str.length() << "\r\n";
request_stream << "Accept: */*\r\n";
request_stream << "Connection: close\r\n\r\n";
request_stream << str ;
预期输出是:
{"success":-2,"message":"no username"}
我得到的输出是:
26
{"success":-2,"message":"no username"}
0
26和0是垃圾数据
HTTP 回复使用分块 transfer-encoding(检查回复中的选项 header)。
在这种情况下你必须
- 阅读一行文字
- 将其内容解释为十六进制整数
- 准确提取此字节数(回复的部分内容)
- 从第1步开始重复,直到整数值为0
我正在使用从服务器获取信息的 boost asio 编写 win32 c++ 代码。当我使用 LOCALHOST 时,代码运行良好,但是当我连接到在线服务器时,响应在 JSON 响应
的开头和结尾添加了整数该代码适用于本地主机,不适用于在线服务器。我想知道是不是我的 http 设置有问题
http 设置为
string str = formData(data);
std::ostream request_stream(&request_);
request_stream << "POST " << path << " HTTP/1.1\r\n";
request_stream << "Host: " << server << "\r\n";
request_stream << "User-Agent: C/1.0\r\n";
request_stream << "Content-Type: application/x-www-form-urlencoded\r\n";
request_stream << "Content-Length: " << str.length() << "\r\n";
request_stream << "Accept: */*\r\n";
request_stream << "Connection: close\r\n\r\n";
request_stream << str ;
预期输出是: {"success":-2,"message":"no username"} 我得到的输出是: 26
{"success":-2,"message":"no username"}
0
26和0是垃圾数据
HTTP 回复使用分块 transfer-encoding(检查回复中的选项 header)。
在这种情况下你必须
- 阅读一行文字
- 将其内容解释为十六进制整数
- 准确提取此字节数(回复的部分内容)
- 从第1步开始重复,直到整数值为0