HttpListener HTTP错误400

时间:2013-11-19 10:45:00

标签: c# java android http

我正在使用HttpListener为我的连接服务实现一个简单的HTTP协议。当我使用浏览器连接它时,它工作正常,但如果我使用Android的DefaultHttpClient,我会收到“400 Bad Request”。

C#代码:

httpListener = new HttpListener();
httpListener.Prefixes.Add(String.Format("http://*:{0}/", port));
httpListener.Start();

Java代码:

HttpPost post = new HttpPost(path);
HttpClient client = new DefaultHttpClient();
HttpHost httphost = new HttpHost(host, port);

StringEntity body = new StringEntity("Stuff I post", "UTF-8");
body.setContentType("text/xml");
post.setEntity(body);

response = client.execute(httphost, post);
StatusLine status = response.getStatusLine();

我无处可找出到底出了什么问题,我得到的只是“400 Bad Request”。当我通过听一个简单的端口看POST时,我看到的看起来还不错。

令人沮丧的是,它在几天前就有用了。

2 个答案:

答案 0 :(得分:0)

服务器似乎期待XML(通过“text / xml”判断)并且您正在发送纯文本,因此服务器上的APPLICATION抱怨“400 Bad Request”,即它无法解析XML。尝试以服务器期望的格式发送XML,甚至尝试将上述请求发送到测试页面,就像一些带有<?php var_dump($_POST);的简单PHP。如果测试页面返回200 OK,则请求按预期工作,您必须按照服务器期望的XML格式工作。

答案 1 :(得分:0)

事实证明,我必须以/开始我的路径。