从Http请求获取POST数据(Android)

时间:2012-04-28 17:01:37

标签: android http post httprequest

在我的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表单中做错了。请告知两者。

2 个答案:

答案 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

等在线工具
相关问题