乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      基于HttpURLConnection的android http請(qǐng)求封裝

       Coder編程 2022-12-21 發(fā)布于北京

      基于HttpURLConnection的android http請(qǐng)求封裝

      使用方法

      new Thread(new Runnable(){
          @Override
          public void run() {
            //axiosGH(url,callback)//簡(jiǎn)寫方式,默認(rèn)為get請(qǐng)求
            //axiosGH.get(url,callback)
            //axiosGH.get(url,params,callback)
            //axiosGH.post(url,callback)
            //axiosGH.post(url,params,callback)
              axiosGH.post(serverUrl + "/user/login", params, new AxiosGH.Callback() {
                  @Override
                  public void onSuccess(String res) {
                    //請(qǐng)求成功返回參數(shù)處理
                      System.out.println(res);
                  }
                  @Override
                  public void onFailed(String err) {
                    //請(qǐng)求失敗返回參數(shù)處理
                      System.out.println(err);
                  }
              });
          }
      }).start();
      

      代碼片段

      package com.guhun.server;
      
      import java.io.ByteArrayOutputStream;
      import java.io.IOException;
      import java.io.InputStream;
      import java.io.OutputStream;
      import java.net.HttpURLConnection;
      import java.net.URL;
      import java.net.URLEncoder;
      import java.util.Map;
      
      // 仿造axios書寫的http請(qǐng)求——————GuHun
      public class AxiosGH {
          private String requestMethod;
          private boolean useCaches;
          private String serverUrl;
          private int connectTimeout;
          private String encode;
          // 初始化實(shí)例
          public AxiosGH(){
              init();
          }
          // 默認(rèn)為get請(qǐng)求(地址,回調(diào)函數(shù))
          public AxiosGH(String url,Callback callback){
              init();
              serverUrl = url;
              submitPostData(null,callback);
          }
          // get請(qǐng)求(地址,參數(shù),回調(diào)函數(shù))
          public void get(String url,Callback callback){
              serverUrl = url;
              submitPostData(null,callback);
          }
          // get請(qǐng)求(地址,參數(shù),回調(diào)函數(shù))
          public void get(String url,Map<String,String> params,Callback callback){
              serverUrl = url;
              submitPostData(params,callback);
          }
          // post請(qǐng)求(地址,回調(diào)函數(shù))
          public void post(String url,Callback callback){
              requestMethod = "POST";
              serverUrl = url;
              submitPostData(null,callback);
          }
          // post請(qǐng)求(地址,參數(shù),回調(diào)函數(shù))
          public void post(String url,Map<String,String> params,Callback callback){
              requestMethod = "POST";
              serverUrl = url;
              submitPostData(params,callback);
          }
          // 初始化參數(shù)
          private void init(){
              requestMethod = "GET";
              useCaches = false;
              connectTimeout = 3000;
              encode="utf-8";
          }
      
          // 博客園-依舊淡然
          //HttpUtils.submitPostData(params, "utf-8")
          private void submitPostData(Map<String, String> params,Callback callback){
              String data = null;
              if (params!=null) {
                   data = getRequestData(params, encode).toString();
              }
              try {
                  if(requestMethod.equals("GET") && data != null){
                      serverUrl += '?'+data;
                  }
                  URL url = new URL(serverUrl);
                  HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                  connection.setRequestMethod(requestMethod);//方式
                  connection.setConnectTimeout(connectTimeout);//超時(shí)
                  if(requestMethod.equals("POST")){
                      connection.setDoInput(true);//向服務(wù)器輸入
                      connection.setDoOutput(true);//向服務(wù)器輸出
                      connection.setUseCaches(useCaches);//緩存
                      //設(shè)置請(qǐng)求體的類型是文本類型
                      connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                      //設(shè)置請(qǐng)求體的長(zhǎng)度
                      connection.setRequestProperty("Content-Length", String.valueOf(data.getBytes().length));
                      //獲得輸出流,向服務(wù)器寫入數(shù)據(jù)
                      OutputStream outputStream = connection.getOutputStream();
                      outputStream.write(data.getBytes());
                  }
                  int response = connection.getResponseCode();            //獲得服務(wù)器的響應(yīng)碼
                  if(response == HttpURLConnection.HTTP_OK) {
                      InputStream inptStream = connection.getInputStream();
                      callback.onSuccess(dealResponseResult(inptStream));                     //處理服務(wù)器的響應(yīng)結(jié)果
                  }else {
                      callback.onFailed("Error: response is" + response);
                  }
              } catch (Exception e) {
                  e.printStackTrace();
                  callback.onFailed(e.toString());
              }
          }
          // 博客園-依舊淡然
          public static StringBuffer getRequestData(Map<String, String> params, String encode) {
              StringBuffer stringBuffer = new StringBuffer();        //存儲(chǔ)封裝好的請(qǐng)求體信息
              try {
                  for(Map.Entry<String, String> entry : params.entrySet()) {
                      stringBuffer.append(entry.getKey())
                              .append("=")
                              .append(URLEncoder.encode(entry.getValue(), encode))
                              .append("&");
                  }
                  stringBuffer.deleteCharAt(stringBuffer.length() - 1);    //刪除最后的一個(gè)"&"
              } catch (Exception e) {
                  e.printStackTrace();
              }
              return stringBuffer;
          }
          // 博客園-依舊淡然
          public static String dealResponseResult(InputStream inputStream) {
              String resultData = null;      //存儲(chǔ)處理結(jié)果
              ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
              byte[] data = new byte[1024];
              int len = 0;
              try {
                  while((len = inputStream.read(data)) != -1) {
                      byteArrayOutputStream.write(data, 0, len);
                  }
              } catch (IOException e) {
                  e.printStackTrace();
              }
              resultData = new String(byteArrayOutputStream.toByteArray());
              return resultData;
          }
          // 回調(diào)函數(shù)
          public interface Callback{
              void onSuccess(String res);
              void onFailed(String err);
          }
      
          // 請(qǐng)求方式
          public void setRequestMethod(String requestMethod) {
              this.requestMethod = requestMethod;
          }
          // 使用緩存
          public void setUseCaches(boolean useCaches) {
              this.useCaches = useCaches;
          }
          // 請(qǐng)求地址
          public void setServerUrl(String serverUrl) {
              this.serverUrl = serverUrl;
          }
          // 請(qǐng)求參數(shù)
          public void setConnectTimeout(int connectTimeout) {
              this.connectTimeout = connectTimeout;
          }
          // 編碼方式
          public void setEncode(String encode) {
              this.encode = encode;
          }
      }
      

      作者:咕魂

      時(shí)間:2021年3月9日09:47:14

      get請(qǐng)求我沒測(cè)試,之后用到有問題會(huì)更新

      參考代碼:Android學(xué)習(xí)筆記46:使用Post方式提交數(shù)據(jù)

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多