android HttpClient与服务器交互

与服务器交互有GET和POST两种方法,在android中,完成与服务器的交互有URLCconnection和HttpClient两种对象,这里主要记录HttpClient方式:

httpClient Get方式

                //url地址
		String urlString = "www.baidu.com";
		//创建Httpclient对象
		HttpClient client  = new DefaultHttpClient();
		//对于get方法而言,创建HttpGet对象,构造函数中传入url字符
		HttpGet get = new HttpGet(urlString);
		try {
			//HttpResponse是服务器的返回的结果的对象
			HttpResponse response = client.execute(get);
			//服务器响应码
			int code = response.getStatusLine().getStatusCode();
			//获取服务器响应内容
			String result = EntityUtils.toString(response.getEntity(),"utf-8");
			
		
		} catch (ClientProtocolException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

如果URL中带有参数:

//先将参数放入List,再对参数进行URL编码
List<BasicNameValuePair> params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("param1", "中国"));
params.add(new BasicNameValuePair("param2", "value2"));

//对参数编码
String param = URLEncodedUtils.format(params, "UTF-8");

//baseUrl			
String baseUrl = "http://ubs.free4lab.com/php/method.php";

//将URL与参数拼接
HttpGet getMethod = new HttpGet(baseUrl + "?" + param);
			
HttpClient httpClient = new DefaultHttpClient();

try {
    HttpResponse response = httpClient.execute(getMethod); //发起GET请求

    Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //获取响应码
    Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8"));//获取服务器响应内容
} catch (ClientProtocolException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}

POST方式:

//和GET方式一样,先将参数放入List
params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("param1", "Post方法"));
params.add(new BasicNameValuePair("param2", "第二个参数"));
			
try {
    HttpPost postMethod = new HttpPost(baseUrl);
    postMethod.setEntity(new UrlEncodedFormEntity(params, "utf-8")); //将参数填入POST Entity中
				
    HttpResponse response = httpClient.execute(postMethod); //执行POST方法
    Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //获取响应码
    Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8")); //获取响应内容
				
} catch (UnsupportedEncodingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (ClientProtocolException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}




扫描二维码关注公众号,回复: 2640227 查看本文章

 
 



猜你喜欢

转载自blog.csdn.net/u010359884/article/details/39937205