免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5840 | 回复: 3

[网络] socket以post方式发送一个http协议头,返回的数据后面为什么带一个400的错误呢? [复制链接]

论坛徽章:
0
发表于 2012-11-02 19:08 |显示全部楼层
我用 socket 连接服务器, 以 post 方式发送一个 http 协议过去.
  1. request: POST  xx/xx HTTP/1.1
  2. HOST: xxx.xxx.xxx.xxx
  3. User-Agent: LogService Http 1.1
  4. Cache-Control: no-cache
  5. Content-Type: text/xml;charset=UTF-8
  6. Connection: Keep-Alive
  7. Accept: */*
  8. Content-Length: 181

  9. <?xml version='1.0' encoding='utf-8'?><request method='xxx'><parameters><data>aaa</data></request>
复制代码
然后, recv 的时候, 接收到了正确的数据, 但是在接收的数据包后面, 还携带了一个 400 的错误. 接收输入如下.
  1. HTTP/1.1 202 Accepted
  2. Server: nginx/0.8.54
  3. Date: Fri, 02 Nov 2012 11:01:49 GMT
  4. Content-Type: text/xml;charset=UTF-8
  5. Content-Length: 179

  6. <?xml version="1.0" encoding="UTF-8" standalone="no"?><response method="xxx"><data>bbbb</data></response><html>
  7. <head><title>400 Bad Request</title></head>
  8. <body bgcolor="white">
  9. <center><h1>400 Bad Request</h1></center>
  10. <hr><center>nginx/0.8.54</center>
  11. </body>
  12. </html>
复制代码
请问下是为什么呢? 是我构造的 http 协议头不正确? 还是其他原因.?

我这里想建立一个长连接. 如果用 http/1.0 不会有这样的问题. 因为 http/1.0 默认建立的是短连接.

我用 QT 的 QNetworkAccessManager 以 post 方式发送数据到服务器, 返回是正常的. 并且返回时 connection 是 keep-alive 的.

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
发表于 2012-11-02 23:26 |显示全部楼层
1, 用curl post上去看看
2, 看nginx日志

论坛徽章:
0
发表于 2012-11-03 09:15 |显示全部楼层
回复 2# linux_c_py_php


    好的, 我试一下用 curl post 看. 谢谢!

论坛徽章:
0
发表于 2014-03-26 14:00 |显示全部楼层
LZ,结果如何呢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP