无法获得完整的http消息

时间:2013-04-02 04:46:14

标签: sockets http curl

我正在使用curl向我的服务器发送 POST HTTP 消息。在服务器端,我打开一个套接字并使用以下代码

读取数据
recv(socket_Fd, (void *)ucBuffer, (size_t)((sizeof(ucBuffer) - 1)), NULL);

我能够获得 POST 消息的标题,但是在消息体中我只得到一行,其余的都没有了。 我在服务器端收到的数据。

 POST /info HTTP/1.1
 User-Agent: curl/7.22.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1    zlib/1.2.3.4 libidn/1.23 librtmp/2.3
 Host: 192.168.0.57:10000
 Accept: */*
 Content-Length: 356
 Content-Type: application/x-www-form-urlencoded

 Bhupesh Bhargava

在邮件标题中,它显示正确的内容长度但缺少邮件正文。知道我做错了什么。 curl命令我正在使用

curl --data-binary @/home/bhupesh/data_save2 http://192.168.0.57:10000/info

1 个答案:

答案 0 :(得分:0)

curl命令似乎没问题,如果我们选择the documentation here,则以下内容应为真。

  

数据的发布方式与--data-ascii类似,但不包括   保留换行符,永远不会进行转换。

因此,这让我们知道您的Server实施中应该存在问题。你不确定如何在服务器上获得收到的东西,但你应该小心自己对你收到的内容进行排序。 Here就是如何做到这一点的一个例子。