在我的 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 表单本身中做错了什么。请就这两方面提出建议。
最佳答案
要获取 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
}
关于android - 从 HttpRequest 获取 POST 数据 (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10365649/