UrlConnection请求网络数据

1.Get请求

try {
      //1 定义 URL 地址
      URL url = new URL(地址 + 传过来的参数);
      //ctrl + h 查看类的继承结构
      //ctrl + q 查看方法信息
      //2 打开连接
      HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
      //3 设置:请求方法;超时
      //请求 方法 GET POST
      urlConnection.setRequestMethod("GET");
      //超时设置
      //读取超时
      urlConnection.setReadTimeout(5000);
      //连接超时
      urlConnection.setConnectTimeout(5000);
      //4 连接并获取状态码
      //////////////////////////////////
      int responseCode = urlConnection.getResponseCode();
      if (responseCode == 200) {
        //5 读取字节流转换成字符串结果
        String result = stream2String(urlConnection.getInputStream());
        //操作ui  子线程不要操作ui
        Message message = mHandler.obtainMessage(UPDATE_UI, result);
        //Message msg = new Message();
        mHandler.sendMessage(message);
        //info.setText(result);
      } else {
        Message message = mHandler.obtainMessage(UPDATE_UI, "error: " + responseCode);
        //info.setText("error: " + responseCode);
        mHandler.sendMessage(message);
      }
    } catch (MalformedURLException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
    //将字节流转换成字符
    private String stream2String(InputStream is) throws IOException {
	    InputStreamReader isr = new InputStreamReader(is, "gbk");//"gbk"是解析码
	    BufferedReader br = new BufferedReader(isr);
	    StringBuilder stringBuilder = new StringBuilder();
	    for (String tmp = br.readLine(); tmp != null; tmp = br.readLine()) {
	      stringBuilder.append(tmp);
	    }
	
	    return stringBuilder.toString();

}
2.Post请求

try {
      //1 url
      URL url = new URL(地址);
      //2 打开连接
      HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
      //3 请求方式
      urlConnection.setRequestMethod("POST");
      //超时
      urlConnection.setReadTimeout(5000);
      urlConnection.setConnectTimeout(5000);
      //标识需要输出参数
      urlConnection.setDoOutput(true);
      //输出参数: tel=xxxxxxxxx
      String params = "tel=" + 传过来的参数;
      urlConnection.getOutputStream().write(params.getBytes());
      urlConnection.getOutputStream().flush();
      //获取结果
      //状态码
      int responseCode = urlConnection.getResponseCode();
      String result;
      if (responseCode == 200) {//请求成功
        result = stream2String(urlConnection.getInputStream(), "gbk");    
      } else {//没有请求成功
        result = "error: " + responseCode;
      }
      //更新 ui
      mHandler.sendMessage(mHandler.obtainMessage(UPDATE_UI, result));
    } catch (MalformedURLException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    }
    //将字节流转换为字符流
    private String stream2String(InputStream is, String cs) throws IOException {
	    StringBuilder stringBuilder = new StringBuilder();		
	    InputStreamReader isr = new InputStreamReader(is, cs);
	    BufferedReader br = new BufferedReader(isr);		
	    for (String tmp = br.readLine(); tmp != null; tmp = br.readLine()) {
	      stringBuilder.append(tmp);
	    }
	    return stringBuilder.toString();
    }

猜你喜欢

转载自blog.csdn.net/xieyu1999/article/details/83657688