android中使用get、post和HttpClient方式与服务器交互

来源:互联网 发布:oracle数据库pdf下载 编辑:程序博客网 时间:2024/06/08 16:04
一:get方式请求服务器
public String byGet(){
  try {
   URL url=new URL(http://www.apkbus.com/index.jsp?id=6&username=blog);
   HttpURLConnection conn= (HttpURLConnection) url.openConnection();
   conn.setRequestMethod("GET");
   conn.setReadTimeout(5000);
   conn.setConnectTimeout(5000);
   conn.setRequestProperty(field, newValue);
   
   int code=conn.getResponseCode();
   if (code==200) {
    //请求成功
    InputStream in=conn.getInputStream();
    BufferedReader br=new BufferedReader(new InputStreamReader(in, "UTF-8"));
    StringBuffer buffer=null;
    while(br.readLine()!=null){
     buffer.append(br.readLine().trim());
    }
    return buffer.toString();
   } else {
                   return "请求失败";
   }
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
return null;
 }
二:post方式提交数据
public String byPost(){
  try {
   URL url=new URL("http://www.apkbus.com/");
   HttpURLConnection conn= (HttpURLConnection) url.openConnection();
   conn.setRequestMethod("POST");
   conn.setReadTimeout(5000);
   conn.setConnectTimeout(5000);
   String data="username=4&id=4";
   conn.setRequestProperty("Content-Type", "");//指定请求类型
   conn.setRequestProperty("Content-Length", data.length()+"");//指定数据的大小
   conn.setDoOutput(true);//指定允许往服务器些数据
   OutputStream os=conn.getOutputStream();
   os.write(data.getBytes());//写数据
   
   int code=conn.getResponseCode();
   if (code==200) {
    //请求成功
    InputStream in=conn.getInputStream();
    BufferedReader br=new BufferedReader(new InputStreamReader(in, "UTF-8"));
    StringBuffer buffer=null;
    while(br.readLine()!=null){
     buffer.append(br.readLine().trim());
    }
    return buffer.toString();
   } else {
                   return "请求失败";
   }
   
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return null;
 }
三:使用HttpClient开源框架的GET方法
   public String byHttpClientGET(){
  try {
   //1.打开一个浏览器
   HttpClient client=new DefaultHttpClient();
   //2.输入地址
   //2.get方式输入地址
   HttpGet httpget=new HttpGet("http://www.apkbus.com/index.jsp?id=3");
   //3.回车
   HttpResponse response=client.execute(httpget);
   int code=response.getStatusLine().getStatusCode();
   
   if (code==200) {
    //请求成功
    HttpEntity entity=response.getEntity();
    InputStream in= entity.getContent();
    BufferedReader br=new BufferedReader(new InputStreamReader(in, "UTF-8"));
    StringBuffer buffer=null;
    while(br.readLine()!=null){
     buffer.append(br.readLine().trim());
    }
    return buffer.toString();
   } else {
                   return "请求失败";
   }
   
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return null;
 }
四:使用HttpClient开源框架的POST方法
public String byHttpClientPOST(){
  try {
   //1.打开一个浏览器
   HttpClient client=new DefaultHttpClient();
   //2.输入地址
   //2.get方式输入地址
   HttpPost httpPOST=new HttpPost("http://www.apkbus.com");
   //3.指定要提交的数据实体
   ArrayList parameters=new ArrayList<NameValuePair>();
   parameters.add(new BasicNameValuePair("username", "zhangsan"));
   httpPOST.setEntity(new UrlEncodedFormEntity(parameters, "UTF-8"));
   //4.敲回车
   HttpResponse response=client.execute(httpPOST);
   int code=response.getStatusLine().getStatusCode();
   
   if (code==200) {
    //请求成功
    HttpEntity entity=response.getEntity();
    InputStream in= entity.getContent();
    BufferedReader br=new BufferedReader(new InputStreamReader(in, "UTF-8"));
    StringBuffer buffer=null;
    while(br.readLine()!=null){
     buffer.append(br.readLine().trim());
    }
    return buffer.toString();
   } else {
                   return "请求失败";
   }
   
  } catch (Exception e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return null;
 }