android HttpClient与服务器交互

来源:互联网 发布:大连 旅游 知乎 编辑:程序博客网 时间:2024/05/21 10:31

与服务器交互有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 blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.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");//baseUrlString 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方式一样,先将参数放入Listparams = 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();}








0 0