HTTP 400 - 难以理解错误代码,描述最少

时间:2013-07-19 16:52:26

标签: http tcp http-headers http-post

所有

我的要求相当简单。我必须对IP:端口组合执行简单的HTTP POST。我使用简单的套接字编程来做到这一点,我已经成功地将请求发送给他们,并从他们那里得到回复。唯一的问题是响应始终是HTTP 400:错误请求后跟我的HTTP POST消息。我不确定问题出在客户端还是服务器上。我唯一的猜测是,我发送的数据可能存在问题。这就是我的POST看起来像

POST /<Server Tag> HTTP/5.1
Content-Length: xxx


--Content--

并且来自服务器的响应看起来像这样

HTTP/1.1 400 Bad Request
Content-Length: xxx

--Same content that I sent them--

我不确定我是否可以在这里输入服务器的IP,因此请继续使用。我很确定问题不存在,因为我从服务器回来了一些响应,并对连接充满信心。有人能帮助我吗?

PS:关于我的POST的一些指示:

1)服务器请求HTTP 5.1,我不确定这是否正确 2)我在内容长度之后玩了很多行空格。我试过给一行和两行。不确定这是否会产生影响。虽然我看到线条空间的数量与单行空间有所不同,但协议被指定为TCP但有两个更改为HTTP。始终在HTTP协议上接收响应。关于差异的一些解释也会有所帮助

由于

编辑:让我困惑的另一件事是响应有一个HTTP 1.1,而不是我发送的5.1。我也尝试将帖子改为1.1但没有成功

edit2:基于fvu和其他人的建议表格,我使用WebClient上传我的请求。仍然得到400.由WebClient生成的标题看起来像这样

POST <server tag> HTTP/1.1
Host: <IP:PORT>
Content-Length: 484
Expect: 100-continue
Connection: Keep-Alive

我看到的问题可能是服务器没有期待标题中的所有细节。服务器仅请求我们Content-Length。那会是个问题吗? 感谢

2 个答案:

答案 0 :(得分:0)

您可以使用调试代理查看客户端请求和服务器响应,以确定客户端套接字程序需要执行的操作。

但首先,您需要创建一个浏览器显示的简单网页,允许您从浏览器执行POST到Web服务器,并从服务器返回一个简单的响应。

答案 1 :(得分:0)

  1. 服务器应用程序的程序员错误或误用了HTTP / 5.1

  2. 您应该从服务器api获取一个有效的示例,以便首先检查您的协议实现。