android - 在 Android 中处理 POST 请求

标签 android http post

我正在尝试在 Android 中实现一个简单的 HTTP 服务器,它使用 DefaultHttpServerConnection 处理 POST 请求,但我的问题是接收封闭的实体。

DefaultHttpServerConnection conn = new DefaultHttpServerConnection();
conn.bind(socket, new BasicHttpParams());
HttpRequest request = conn.receiveRequestHeader(); 

String method = request.getRequestLine().getMethod().toUpperCase();
if (method.equals("POST")) {
    if (DEBUG) Log.d(TAG, "POST received");
    handleUpload(conn, request);
}

还有 handleUpload 方法:

private void handleUpload(DefaultHttpServerConnection conn, HttpRequest request) throws HttpException, IOException {
    HttpResponse response = new BasicHttpResponse(new HttpVersion(1,1), 200, "OK");       
    BasicHttpEntityEnclosingRequest enclosingRequest = new BasicHttpEntityEnclosingRequest(request.getRequestLine());
    conn.receiveRequestEntity(enclosingRequest);
    if (DEBUG) Log.d(TAG, "Before input");
    String r = EntityUtils.toString(enclosingRequest.getEntity());
    if (DEBUG) Log.d(TAG, "Entity: " + r);

    conn.sendResponseHeader(response);
    conn.sendResponseEntity(response);
}

EntityUtils.toString() 中的执行 block 。使用的客户端代码:

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("STH", "do sth!"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);

抱歉这个菜鸟问题。

最佳答案

DefaultHttpServerConnection conn = new DefaultHttpServerConnection();
conn.bind(serverSocket.accept(), new BasicHttpParams());
HttpRequest request = conn.receiveRequestHeader();
conn.receiveRequestEntity((HttpEntityEnclosingRequest)request);
HttpEntity entity = ((HttpEntityEnclosingRequest)request).getEntity();
System.out.println(EntityUtils.toString(entity));

http://hc.apache.org/httpcomponents-core-ga/tutorial/pdf/httpcore-tutorial.pdf

关于android - 在 Android 中处理 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8246662/

相关文章:

java - 如何在 Android 中调用 `POST` RESTfull 方法?

python - HTTP POST 响应是如何构造的?我如何用 Python 和 urllib2 重新创建它们来模拟填写表单?

android - Firebase 实时数据库 : DatabaseError Permission denied

java - android.os.Parcel.createExceptionOrNull 致命异常 : java. lang.IllegalArgumentException

Android M 权限模型

传递给不同子域的 HTTP 基本身份验证

delphi - Delphi 2010 中的 Indy IdHttp Post 问题

java - RecyclerView 在首次加载时不显示数据

javascript - 将数据从客户端 JavaScript 页面发送到 Node 服务器

Java Servlet : Specify postdata limit for request. 获取参数?