2

在我的 Android 应用程序中,我需要运行一个 HTTP Web 服务器。初始启动似乎没问题 - 当我使用浏览器导航到该服务器上的页面时,我可以接收请求并处理 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 表单本身中做错了什么。请就这两个方面提出建议。

4

2 回答 2

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
}
于 2012-04-29T10:07:18.087 回答
0

请参阅此处以在 android 中实现 POST 请求。

要使用浏览器进行交叉检查..我可以建议您在 Firebug(在 firefox 上,其他类似)控制台中查看 ajax 发布请求。或在线工具,如http://web-sniffer.net/http://hurl.it

于 2012-04-28T17:54:19.853 回答