我正在尝试使用boost ASIO库发送帖子,但变量永远不会进入服务器。我知道服务器工作正常(用curl测试)
此代码不起作用(变量msg未发布到服务器)但是当我使用curl时它确实有效
tcp::resolver resolver(io_service);
tcp::resolver::query query("localhost", "3000"); // "http");
tcp::resolver::iterator endpoint_iterator = resolver.resolve(query);
tcp::resolver::iterator end;
tcp::socket socket(io_service);
boost::system::error_code error = boost::asio::error::host_not_found;
while (error && endpoint_iterator != end)
{
socket.close();
socket.connect(*endpoint_iterator++, error);
}
if (error)
throw boost::system::system_error(error);
boost::asio::streambuf request;
std::ostream request_stream(&request);
string sToSend = "msg=testing";
request_stream << "POST / HTTP/1.1\r\n";
request_stream << "Host: " << "localhost:3000" << "\r\n";
request_stream << "Accept: */*\r\n";
request_stream << "Content-Length: " << sToSend.length() << "\r\n";
request_stream << "Content-Type: application/x-www-form-urlencoded";
request_stream << "Connection: close\r\n\r\n"; d
request_stream << sToSend;
// Send the request.
boost::asio::write(socket, request);
boost::asio::streambuf response;
boost::asio::read_until(socket, response, "\r\n");
要测试我使用的服务器
$ curl --verbose -X POST -d msg=testing123 localhost:3000/
* Hostname was NOT found in DNS cache
* Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 3000 (#0)
> POST / HTTP/1.1
> User-Agent: curl/7.35.0
> Host: localhost:3000
> Accept: */*
> Content-Length: 14
> Content-Type: application/x-www-form-urlencoded
>
* upload completely sent off: 14 out of 14 bytes
< HTTP/1.1 200 OK
< X-Powered-By: Express
< Date: Mon, 21 Mar 2016 20:55:00 GMT
< Connection: keep-alive
< Transfer-Encoding: chunked
<
* Connection #0 to host localhost left intact
答案 0 :(得分:1)
您在此行上错过了回车符和换行符:
Mat searchRgn = frame.submat(searchRgnRect);
int result_cols = searchRgn.cols() - foi_img.cols() + 1;
int result_rows = searchRgn.rows() - foi_img.rows() + 1;
Mat result = new Mat(result_rows,result_cols, CvType.CV_32FC1);
Imgproc.matchTemplate(searchRgn, foi_img, result,Imgproc.TM_SQDIFF_NORMED);
Core.normalize(result, result, 0, 1, Core.NORM_MINMAX, -1);
Core.MinMaxLocResult mmr = Core.minMaxLoc(result);
//draw rectangle at mr.minLoc