在我的Android应用中,我需要运行HTTP网络服务器。初始启动似乎没问题 - 当我使用浏览器导航到该服务器上的页面时,我可以接收请求并处理URI字符串(我看到带有所有参数的完整URI的GET请求)。 但是,如果我使用的表单向服务器提交请求:
<FORM action="http://192.168.1.107:8080/testaction" method="post">
<INPUT type="text" name="textfield" /><BR>
<INPUT type="submit" value="Send"/>
</FORM>
我只在URI中获取操作(例如“/ testaction”)。我无法弄清楚如何获取POST请求的实际数据。
以下是在java代码中处理请求的部分:
public class HomePageHandler implements HttpRequestHandler {
...
@Override
public void handle(HttpRequest request, HttpResponse response, HttpContext httpContext) throws HttpException, IOException {
String uriString = request.getRequestLine().getUri();
Uri uri = Uri.parse(uriString);
...
}
我意识到我可能在java和/或HTML表单中做错了。请告知两者。
答案 0 :(得分:4)
要获取POST正文,您可以执行以下操作:
if (request instanceof HttpEntityEnclosingRequest) { //test if request is a POST
HttpEntity entity = ((HttpEntityEnclosingRequest) request).getEntity();
String body = EntityUtils.toString(entity); //here you have the POST body
}
答案 1 :(得分:0)
请参阅here 以在android ..中实现POST请求。
要与浏览器进行交叉检查..我可以建议您查看Firebug(在Firefox上,类似其他人)控制台上的ajax发布请求。或http://web-sniffer.net/或http://hurl.it
等在线工具