HttpClient 和 HttpURLConnection两种请求方式的写法

Http请求

public class RegisterAsyncTaskGet extends AsyncTask<String, Void, String>{

 @Override
 protected String doInBackground(String... params) {
  try {
   URL url=new URL(params[0]);
   HttpURLConnection conn=(HttpURLConnection) url.openConnection();
   conn.setRequestMethod("GET");
   conn.setConnectTimeout(15000);
   conn.setReadTimeout(15000);
   conn.connect();
   if(conn.getResponseCode()==200){
    InputStream in=conn.getInputStream();
    return StringUtils.getStringByInputStream(in);
   }
   
  } catch (MalformedURLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return null;
 }

}

public class RegisterAsyncTaskPost extends AsyncTask<String, Void, String>{

 @Override
 protected String doInBackground(String... params) {
  try {
   URL url=new URL(params[0]);
   HttpURLConnection conn=(HttpURLConnection) url.openConnection();
   conn.setRequestMethod("POST");
   DataOutputStream stream=new DataOutputStream(conn.getOutputStream());
   stream.writeBytes("uname"+params[1]+"&upassword"+params[2]);
   conn.setConnectTimeout(15000);
   conn.setReadTimeout(15000);
   conn.connect();
   if(conn.getResponseCode()==200){
    InputStream in=conn.getInputStream();
    return StringUtils.getStringByInputStream(in);
   }
  } catch (MalformedURLException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
  
  
  
  return null;
 }

}

 

public class MyHttpClientGet extends AsyncTask<String, Void, String>{
 /**
  * 用HttpClient GET方式 发起请求
  */
 @Override
 protected String doInBackground(String...params) {
  // TODO Auto-generated method stub
  //1.创建HttpClient
  HttpClient client=new DefaultHttpClient();
  //2.创建一个GET请求
  HttpGet get=new HttpGet(params[0]);
  //3.向服务端发起请求,=前为接收 响应,=后为发起请求
  try {
   HttpResponse httpresponse=client.execute(get);
   //4.获取响应回来的结果
   if(httpresponse.getStatusLine().getStatusCode()==200){
    HttpEntity entity=httpresponse.getEntity();
    //5.获取我们想要的结果
    String str=EntityUtils.toString(entity, "GBK");
    return str;
   }
   
   
   
  } catch (ClientProtocolException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  
  
  
  return null;
 }

}

 

 

 

public class MyHttpClientPost extends AsyncTask<String, Void, String> {
 /**
  * 用HttpClient POST方式 发起请求
  */
 @Override
 protected String doInBackground(String...params) {
  // TODO Auto-generated method stub
  // 1.创建HttpClient
  HttpClient client = new DefaultHttpClient();
  // 2.创建一个POST请求
  HttpPost post = new HttpPost(params[0]);
  // 3.封装post的请求参数
  List<NameValuePair> pairs = new ArrayList<NameValuePair>();
  pairs.add(new BasicNameValuePair("uname", params[1]));
  pairs.add(new BasicNameValuePair("upassword", params[2]));
  UrlEncodedFormEntity entity1;
  try {
   entity1 = new UrlEncodedFormEntity(pairs, "GBK");
   post.setEntity(entity1);// 将数据保存在ENTITY中
   // 4.向服务端发起请求,=前面为接收响应,=后面为发起请求
   HttpResponse httpresponse = client.execute(post);
   // 5.获取响应回来的结果
   if (httpresponse.getStatusLine().getStatusCode() == 200) {
    HttpEntity entity = httpresponse.getEntity();
    // 6.获取我们想要的结果
    String str = EntityUtils.toString(entity, "GBK");
    return str;
   }
  } 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();
  }
  
  return null;
 }

}

MainActivity.java中处理结果

/**
  * 内部类继承 异步任务类 Override重写onPostExecute() 方法 对返回结果进一步处理
  *
  * @author zjp
  *
  */
 class LoginGet extends MyHttpClientGet {
  @Override
  protected void onPostExecute(String result) {
   // TODO Auto-generated method stub
   super.onPostExecute(result);

   if (!result.equals("error") && result != null) {// 返回值不为空或error说明成功
    Gson g = new Gson();
    Results re = g.fromJson(result, Results.class);
    Toast.makeText(MainActivity.this, re.getInfo().toString(), 0)
      .show();
   } else {// 失败
    Toast.makeText(MainActivity.this, "error", 0).show();
   }
  }

 }

class LoginPost extends MyHttpClientPost {
  @Override
  protected void onPostExecute(String result) {
   // TODO Auto-generated method stub
   super.onPostExecute(result);
   
   if (!result.equals("error") && result != null) {// 返回值不为空或error说明成功
    Gson g = new Gson();
    Results re = g.fromJson(result, Results.class);
    Toast.makeText(MainActivity.this, re.getInfo().toString(), 0)
      .show();
   } else {// 失败
    Toast.makeText(MainActivity.this, "error", 0).show();
   }                                                                                                                                                     
  }
 }
public void login(View v) {
  String name = et_name.getText().toString().trim();
  String pwd = et_pwd.getText().toString().trim();
  LoginGet   re = new LoginGet();//创建内部类对象
  re.execute(url + "?uname=" + name + "&upassword=" + pwd);//提交请求
 }
public void loginP(View v) {
  String name = mNameEt.getText().toString().trim();
  String pwd = mPwdEt.getText().toString().trim();
  LoginPost lp = new LoginPost();
  lp.execute(url,name,pwd);
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值