1. 程式人生 > >java傳送http請求時設定請求方式(post,put,delete,get)

java傳送http請求時設定請求方式(post,put,delete,get)

重點:java.net包下面有兩個類是用來呼叫URL請求的。
第一個 URLconnection 只能使用常用的post方式請求
第二個 httpUrlconnection 可以主動設定四種請求方式
其中,這兩個類都是可以設定header引數傳參的(setRequestProperty(key,value))
程式碼如下:

1.urlconnection

public static String httpPost (String url, byte[] parameter, String base64) throws Exception{

             java.util
.Date data = new java.util.Date(); String timestamp = String.valueOf(data.getTime()/1000);//時間戳(精確到秒) String signature = "*******"; //定義stringbuffer 方便後面讀取網頁返回位元組流資訊時的字串拼接 StringBuffer buffer = new StringBuffer(); //建立url_connection java.net
.URLConnection http_url_connection = null; try { http_url_connection = (new java.net.URL(url)).openConnection(); http_url_connection.setDoInput(true); http_url_connection.setDoOutput(true); http_url_connection.setRequestProperty
("Content-Length", String.valueOf(parameter.length)); http_url_connection.setRequestProperty("Content-Type", "application/json;charset=utf-8"); http_url_connection.setRequestProperty("accept", "application/json"); http_url_connection.setRequestProperty("authkey","************");//header設定authkey的引數 http_url_connection.setRequestProperty("signature",signature);//header設定signature的引數 http_url_connection.setRequestProperty("timestamp",timestamp);//header設定timestamp的引數 http_url_connection.setUseCaches(false); if (null!=base64) { //如果傳入的引數不為空,則通過base64將傳入引數解碼 http_url_connection.setRequestProperty("Authorization", "Basic "+new String(java.util.Base64.getEncoder().encode(base64.getBytes("utf-8")), "utf-8")); } // write request. java.io.BufferedOutputStream output_stream = new java.io.BufferedOutputStream(http_url_connection.getOutputStream()); output_stream.write(parameter); output_stream.flush(); output_stream.close(); output_stream = null; java.io.InputStreamReader input_stream_reader = new java.io.InputStreamReader(http_url_connection.getInputStream(), "utf-8"); java.io.BufferedReader buffered_reader = new java.io.BufferedReader(input_stream_reader); buffer = new StringBuffer(); String line; while ((line = buffered_reader.readLine()) != null) { buffer.append(line); } line=null; input_stream_reader.close(); input_stream_reader = null; buffered_reader.close(); buffered_reader = null; // http_url_connection.disconnect(); } catch (Exception e) { e.printStackTrace(); } return buffer.toString(); }

2.httpUrlconnection


    public static String httpPost (String url, byte[] parameter, String base64) throws Exception{

         java.util.Date data = new java.util.Date();
         String timestamp = String.valueOf(data.getTime()/1000);//時間戳(精確到秒)
         String signature = "*********";

        //定義stringbuffer  方便後面讀取網頁返回位元組流資訊時的字串拼接
        StringBuffer buffer = new StringBuffer();

        //建立url_connection
        java.net.URLConnection http_url_connection = null;
        try {
            http_url_connection = (new java.net.URL(url)).openConnection();
            java.net.HttpURLConnection HttpURLConnection = (java.net.HttpURLConnection)http_url_connection;//將urlconnection類強轉為httpurlconnection類

            HttpURLConnection.setDoInput(true);
            HttpURLConnection.setDoOutput(true);

            HttpURLConnection.setRequestMethod("DELETE");//設定請求方式。可以是delete put post get
            HttpURLConnection.setRequestProperty("Content-Length", String.valueOf(parameter.length));//設定內容的長度
            HttpURLConnection.setRequestProperty("Content-Type", "application/json;charset=utf-8");//設定編碼格式
            HttpURLConnection.setRequestProperty("accept", "application/json");//設定接收返回引數格式

            HttpURLConnection.setRequestProperty("authkey","************");
            HttpURLConnection.setRequestProperty("signature",signature);
            HttpURLConnection.setRequestProperty("timestamp",timestamp);

            HttpURLConnection.setUseCaches(false);

            if (null!=base64) {
                //如果傳入的引數不為空,則通過base64將傳入引數解碼
                HttpURLConnection.setRequestProperty("Authorization", "Basic "+new String(java.util.Base64.getEncoder().encode(base64.getBytes("utf-8")), "utf-8"));
            }

            // write request.
            java.io.BufferedOutputStream output_stream = new java.io.BufferedOutputStream(HttpURLConnection.getOutputStream());
            output_stream.write(parameter);
            output_stream.flush();
            output_stream.close();
            output_stream = null;

            java.io.InputStreamReader input_stream_reader = new java.io.InputStreamReader(HttpURLConnection.getInputStream(), "utf-8");
            java.io.BufferedReader buffered_reader = new java.io.BufferedReader(input_stream_reader);
            buffer = new StringBuffer();
            String line;
            while ((line = buffered_reader.readLine()) != null) {
                buffer.append(line);
            }
            line=null;
            input_stream_reader.close();
            input_stream_reader = null;
            buffered_reader.close();
            buffered_reader = null;
        //  http_url_connection.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
        }

        return buffer.toString();
    }