Http發送post請求


如何用java實現PostMan請求:

 

 

 

 

java實現:

 

  1 import java.io.BufferedReader;
  2 import java.io.IOException;
  3 import java.io.InputStream;
  4 import java.io.InputStreamReader;
  5 import java.io.PrintWriter;
  6 import java.net.HttpURLConnection;
  7 import java.net.URL;
  8 import java.nio.charset.Charset;
  9 import java.nio.charset.StandardCharsets;
 10 
 11 
 12 /**
 13  * @param  ediKey  固定值 后面可變
 14  * @param   ediVal  固定值 后面可變
 15  * @author jizm_wb
 16  *
 17  */
 18 public class TestPostHttp {
 19 
 20     public static void main(String[] args) {  
 21         String url= "http://localhost:8080/ediserver/gateway.do";
 22         
 23         String param ="{\r\n"
 24                 + "    \"datas\": [\r\n"
 25                 + "        {\r\n"
 26                 + "            \"ediKey\": \"businessid\",\r\n"
 27                 + "            \"ediVal\": \"R2022000030\"\r\n"
 28                 + "        }\r\n"
 29                 + "    ],\r\n"
 30                 + "    \"imethod\": \"getEdiMessages\"\r\n"
 31                 + "}";
 32         
 33         
 34         String insureResponsePost = insureResponsePost(url,param);
 35         
 36         System.out.println(insureResponsePost);
 37     }
 38         
 39         /**
 40          * 接口調用(post請求) 數據處理
 41          *
 42          * @param url
 43          *            請求路徑 例如:http://127.0.0.1:8080/test/test
 44          * @param param
 45          *            請求參數 例如:{ "userName":"Lily", "password":"123456" }
 46          * @return 響應數據 例如:{ "resultId":"1" "resultMsg":"操作成功" }
 47          */
 48         public static String insureResponsePost(String url, String param) {
 49             PrintWriter out = null;
 50             InputStream is = null;
 51             BufferedReader br = null;
 52             String result = "";
 53             HttpURLConnection conn = null;
 54             StringBuilder stringBuilder = new StringBuilder();
 55             try {
 56                 URL realUrl = new URL(url);
 57                 conn = (HttpURLConnection) realUrl.openConnection();
 58                 // 設置通用的請求屬性
 59                 conn.setRequestMethod( "POST");
 60                 conn.setConnectTimeout(20000);
 61                 conn.setReadTimeout(300000);
 62                 conn.setRequestProperty("Charset", "utf-8");
 63              // 傳輸數據為json,如果為其他格式可以進行修改
 64                 conn.setRequestProperty( "Content-Type", "application/json");
 65                 conn.setRequestProperty( "Content-Encoding", "utf-8");
 66                 // 發送POST請求必須設置如下兩行
 67                 conn.setDoOutput( true);
 68                 conn.setDoInput( true);
 69                 conn.setUseCaches( false);
 70                 // 獲取URLConnection對象對應的輸出流
 71                 out = new PrintWriter(conn.getOutputStream());
 72                 // 發送請求參數
 73                 out.print(param);
 74                 // flush輸出流的緩沖
 75                 out.flush();
 76                 is = conn.getInputStream();
 77                 BufferedReader bufferedReader = null;
 78                 if (is != null) {
 79                     // 此處需要將編碼格式設置為UTF_8,解決 InputStream 流讀取時的中文亂碼問題
 80                     bufferedReader = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8));
 81                     char[] charBuffer = new char[128];
 82                     int bytesRead = -1;
 83                     while ((bytesRead = bufferedReader.read(charBuffer)) > 0) {
 84                         stringBuilder.append(charBuffer, 0, bytesRead);
 85                     }
 86                 } else {
 87                     stringBuilder.append("");
 88                 }
 89                
 90                 result = stringBuilder.toString();
 91             } catch (Exception e) {
 92                 System. out.println( "發送 POST 請求出現異常!" + e);
 93                 e.printStackTrace();
 94             }
 95             // 使用finally塊來關閉輸出流、輸入流
 96             finally {
 97                 try {
 98                     if (out != null) {
 99                         out.close();
100                     }
101                     if (br != null) {
102                         br.close();
103                     }
104                     if (conn!= null) {
105                         conn.disconnect();
106                     }
107                 } catch (IOException ex) {
108                     ex.printStackTrace();
109                 }
110             }
111             return result;
112         }
113         
114 
115 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM