一 。使用HttpClient 进行GET链接php
新建 URIjava
新GET 请求数据结构
新建 HTTP 客户端post
使用客户端执行操做编码
返回处理的结果 url
1. URI,这里的URI并非URI类,而是String类型的uri字符。spa
String uri = "http://";
2. 新建 GET 请求code
只要用HttpGet类就能够了orm
HttpGet.HttpGet (String uri );
3. 新建 Http 客户端对象
通常使用默认的就能够了
DefaultHttpClient.DefaultHttpClient ()
4. 使用客户端执行请求
HttpClient.execute (HttpUriRequest request ) throws IOException ,ClientProtocolException
这个 方法返回的是HttpResponse类型,也就是响应、。
5. 处理响应
获得了HttpResponse后,在网格上的就完成 了,如今在本地进行响应处理。
HttpResponse.getStatusLine () ;//获得状态行 HttpResponse.getEntity () ;// 获得结果
例子:
protected void doGet() { // TODO Auto-generated method stub //新建 URL String url="http://5billion.com.cn/post.php?name=abcd"; //新建 GET 请求 HttpGet httpRequest = new HttpGet (url ); //新建 http客户端 HttpClient httpClient = new DefaultHttpClient (); //执行请求返回结果 try { HttpResponse httpResponse = httpClient.execute(httpRequest); //判断结果 if (httpResponse.getStatusLine().getStatusCode()==HttpStatus.SC_OK){ //获得结果 的类型 String result = EntityUtils.toString(httpResponse.getEntity()); textView.setText(result); }else { textView.setText("应答错误 :"+httpResponse.getStatusLine().toString()); } } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
二。使用HttpCLient进行POST链接
使用POST链接与GET链接不一样的地方参数 的传递。在POST中,参数 的传递用 NameValuePair 类,实质也就是HashMap。
POST与GET不一样的地方 在于请求的创建
1 。新建 HttpPost请求
HttpPost.HttpPost( String uri );
2. 新建 保存参数的数据 结构
在POST中传递的是NameValuePair类,仅仅保存一个确定是不够的,因此真正传递的是一个列表,表中每个对象 都是一个NameValuePair。以下
新建 一个列表 来保存NameValuePair。
List<NameValuePair> params = new ArrayList <NameValuePair >(); //新建真正 的数据 ,以名值 对的形式保存 BasicNameValuePair.BasicNameValuePair (String name ,String value ); //将名值 对加入 到列表 中 List.add(NameValuePair object);
3. 为参数 设置编码 方式
最后将以前 新建 好的List对象 加入 到HttpPost对象 中
UrlEncodedFormEntity.UrlEncodedFormEntity (List <?extends NameValuePair>parameters ,String encoding )throws UnsupportedEncodingException
第一个参数 是要编码 的参数 ,第二个是设置编码 的方式 ,能够使用HTTP.UTF_8, HTTP,UTF_16
4. 将参数 加入 到请求中
HttpEntityEnclosingRequestBase.setEntity (HttpEntity entity );
接下来的工做就同样了
5.新建 http客户端
DefaultHttpClient.DefaultHttpClient ()
6. 使用客户端执行操做
HttpClient.execute (HttpUriRequest request ) throws IOException ,ClientProtocolException
7 处理响应
这里的处理要按应用的要求 来处理,如将结果以String 显示
String result - ENtityUtils.toString (httpReqsponse.getEntity()); tv.setText (result );
例子
protected void doPost() { // TODO Auto-generated method stub //新建 一个URL String url ="http://www.baidu.com"; //新建 POST类请求 HttpPost httpRequest = new HttpPost(url ); //新建 要传递的数据结构 List <NameValuePair>params = new ArrayList <NameValuePair >(); //新建 键值对 BasicNameValuePair pair1 = new BasicNameValuePair ("param","AaBbCcDdEe"); //将数据 加入 到键值 对中 params.add(pair1); try { //设置编码 方式 HttpEntity entity = new UrlEncodedFormEntity (params ,HTTP.UTF_8); httpRequest.setEntity(entity); //新建 http客户端 HttpClient httpClient = new DefaultHttpClient (); //执行请求,获得响应 HttpResponse httpResponse = httpClient .execute(httpRequest ); //判断响应状态 是否成功 if (httpResponse.getStatusLine().getStatusCode()==HttpStatus.SC_OK){ String result = EntityUtils.toString(httpResponse.getEntity()); textView.setText(result); } } 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(); } }