我正在使用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时,我看到的看起来还不错。
令人沮丧的是,它在几天前就有用了。
答案 0 :(得分:0)
服务器似乎期待XML(通过“text / xml”判断)并且您正在发送纯文本,因此服务器上的APPLICATION抱怨“400 Bad Request”,即它无法解析XML。尝试以服务器期望的格式发送XML,甚至尝试将上述请求发送到测试页面,就像一些带有<?php var_dump($_POST);
的简单PHP。如果测试页面返回200 OK,则请求按预期工作,您必须按照服务器期望的XML格式工作。
答案 1 :(得分:0)
事实证明,我必须以/
开始我的路径。