java 介面調用

來源:互聯網
上載者:User

標籤:obj   中斷連線   prope   一個   accept   cat   line   als   index   

生產中遇到過這種問題,記錄下java的介面調用問題。

一種是json方式;

 public static String sendPost(String url, JSONObject obj)throws IOException{                   OutputStreamWriter out = null;                   BufferedReader reader = null;                   String response="";                   /*                   String paramStr = "";                if (null != param) { //遍曆參數Map添加到集合中                    Set<String> keySet = param.keySet();                    for (String key : keySet) {                        paramStr = paramStr + key + ":" + param.get(key) + "&";                    }                }                int lastAndIndex = paramStr.lastIndexOf("&");                if (lastAndIndex != -1) {                    paramStr = paramStr.substring(0, lastAndIndex);                }                                System.out.println("地址===" + url);                System.out.println("入參===" + paramStr);*/                                   try {                       URL httpUrl = null; //HTTP URL類 用這個類來建立串連                       //建立URL                       httpUrl = new URL(url);                       //建立串連                       HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection();                       conn.setRequestProperty("accept", "*/*");// 設定通用的請求屬性                       conn.setRequestProperty("Charset", "UTF-8");                       conn.setRequestMethod("POST");                       conn.setRequestProperty("Content-Type", "application/json");                       conn.setRequestProperty("connection", "keep-alive");                       conn.setUseCaches(false);//設定不要緩衝                       conn.setInstanceFollowRedirects(true);                       conn.setDoOutput(true);                       conn.setDoInput(true);                       conn.connect();                       //POST請求                       out = new OutputStreamWriter(                               conn.getOutputStream());                       out.write(obj.toJSONString());                       out.flush();                       //讀取響應                       reader = new BufferedReader(new InputStreamReader(                               conn.getInputStream()));                       String lines;                       while ((lines = reader.readLine()) != null) {                           lines = new String(lines.getBytes(), "utf-8");                           response+=lines;                       }                       reader.close();                       // 中斷連線                       conn.disconnect();                   } catch (Exception e) {                   System.out.println("發送 POST 請求出現異常!"+e);                   e.printStackTrace();                   }                   //使用finally塊來關閉輸出資料流、輸入資料流                   finally{                   try{                       if(out!=null){                           out.close();                       }                       if(reader!=null){                           reader.close();                       }                   }                   catch(IOException ex){                       ex.printStackTrace();                   }               }                              return response;               }

再來一個普通的str 調用介面;

    /**     * 向指定 URL 發送POST方法的請求     * @param url 發送請求的 URL     * @param param 請求參數,請求參數應該是 name1=value1&name2=value2 的形式。     * @return 所代表遠端資源的響應結果     */    public static String sendPostWebReq(String url, Map<String, Object> param,int i) throws Exception {        String paramStr = "";        if (null != param) { //遍曆參數Map添加到集合中            Set<String> keySet = param.keySet();            for (String key : keySet) {                paramStr = paramStr + key + "=" + param.get(key) + "&";            }        }        int lastAndIndex = paramStr.lastIndexOf("&");        if (lastAndIndex != -1) {            paramStr = paramStr.substring(0, lastAndIndex);        }                System.out.println("地址===" + url);        System.out.println("入參===" + paramStr);                PrintWriter out = null;        BufferedReader in = null;        String result = "";        try {            URL realUrl = new URL(url);            HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();// 開啟和URL之間的串連            conn.setRequestProperty("accept", "*/*");// 設定通用的請求屬性            conn.setRequestProperty("Content-Type", "application/json");            conn.setRequestProperty("connection", "Keep-Alive");            conn.setRequestProperty("Charset", "UTF-8");            conn.setDoOutput(true);// 發送POST請求必須設定如下兩行            conn.setDoInput(true);// 擷取URLConnection對象對應的輸出資料流            out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(), "UTF-8"));// 發送請求參數            out.print(paramStr);// flush輸出資料流的緩衝            out.flush();            in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));// 定義BufferedReader輸入資料流來讀取URL的響應            String line;            while ((line = in.readLine()) != null) {                result += line;            }        } catch (Exception e) {            System.out.println("發送 POST 請求出現異常!" + e);            throw e;        } finally { // 使用finally塊來關閉輸出資料流、輸入資料流            try {                if (in != null) in.close();            } catch (IOException ex) { }            if (out != null) out.close();        }        return result;    }

 

java 介面調用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.