当前位置: 首页 > 编程笔记 >

Android使用httpPost向服务器发送请求的方法

危彬彬
2023-03-14
本文向大家介绍Android使用httpPost向服务器发送请求的方法,包括了Android使用httpPost向服务器发送请求的方法的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了Android使用httpPost向服务器发送请求的方法。分享给大家供大家参考,具体如下:

import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.ConnectTimeoutException;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import android.util.Log;
public class RequestByHttpPost {
  public static String TIME_OUT = "操作超时";
  public static String doPost(List<NameValuePair> params,String url) throws Exception{
    String result = null;
     // 新建HttpPost对象
     HttpPost httpPost = new HttpPost(url);
     // 设置字符集
     HttpEntity entity = new UrlEncodedFormEntity(params, HTTP.UTF_8);
     // 设置参数实体
     httpPost.setEntity(entity);
     // 获取HttpClient对象
     HttpClient httpClient = new DefaultHttpClient();
     //连接超时
     httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 30000);
     //请求超时
     httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 30000);
     try {
       // 获取HttpResponse实例
      HttpResponse httpResp = httpClient.execute(httpPost);
      // 判断是够请求成功
      if (httpResp.getStatusLine().getStatusCode() == 200) {
        // 获取返回的数据
        result = EntityUtils.toString(httpResp.getEntity(), "UTF-8");
        Log.i("HttpPost", "HttpPost方式请求成功,返回数据如下:");
        Log.i("result", result);
      } else {
        Log.i("HttpPost", "HttpPost方式请求失败");
      }
     } catch (ConnectTimeoutException e){
       result = TIME_OUT;
     }
     return result;
  }
}

可以直接用的完整类。

希望本文所述对大家Android程序设计有所帮助。

 类似资料:
  • XMLHttpRequest 对象用于和服务器交换数据。 向服务器发送请求 如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法:xmlhttp.open("GET","ajax_info.txt",true); xmlhttp.send(); 方法 描述 open(method,url,async) 规定请求的类型、URL 以及是否异步处理

  • 好的,我对网络服务完全陌生,对于我正在做的一个项目,我试图了解整个SOAP。我想我对正在发生的事情有一个模糊的理解,但是我缺少一些具体的信息,我在谷歌上找不到任何有用的东西。 我已经阅读了其他人提出的问题,例如使用java向Web服务发出的SOAP请求,但我仍然无法完全弄清楚发生了什么。 具体来说,我尝试使用这里提供的服务http://ec.europa.eu/taxation_customs/v

  • 我最近一直在用Java编写自己的Webserver,因为我觉得有一个很不错,昨天我偶然发现了一个问题,我仍然没有解决。我的浏览器(取消搜索Chromium)似乎向服务器发送了一些空请求或类似的东西。我实现了一个请求处理程序,它应该读取GET请求并提取请求的资源。它的工作原理是这样的:它以请求为例:“GET/index.htmlHTTP/1.1”并将其放入带有String.split (" ");

  • 我想向一个包含参与者的服务器发出一个异步请求。假设我有两个演员: 和 我的问题是: 1) getSessionIdFromServer()向服务器发出同步请求。我认为异步请求会好得多,对吗?所以它将返回Future[String]而不是一个普通的字符串。 2)我如何使异步:通过使用AsyncHttpClient(如果我没记错的话)或将其同步体包装到Future { } 中? 3)我应该使用阻塞{}

  • 我有这个代码: 当为 true(执行 POST 或 PUT 请求)时,此代码会引发 IOException,并且不会完成请求。我尝试对 重新排序、编写调用和流创建块,但没有排列工作。 在所有情况下,BufferedReader都工作得很好,不会抛出任何异常。< code>getQuery正确返回URL编码的字符串。 以下是来自IOExc的堆栈跟踪: 最终发生的是请求通过,但没有一个POST或PUT