RestTemplate 發送Post 多個參數請求


          MultiValueMap<String, String> requestEntity = new LinkedMultiValueMap<>();
                requestEntity.add("clientFlag", clientFlag);
                requestEntity.add("xml", xml);
                requestEntity.add("verifyData", strMd5);
         String s = REST_TEMPLATE.postForObject("http://10.10.129.19/svsr/Receive.asmx/OrderXML", requestEntity, String.class);


 !!

    最直接的方法就是 寫個類吧!!

        可惜了 JAVA 沒有  c# 中  匿名類 這個東西啊

 

  var news = new { title="特大喜訊",author="夕陽眼",postdate="3013-10-9",msg="今晚公布"};

 

 補充:

  設置請求頭:

  

        MultiValueMap<String, Object> postParameters = new LinkedMultiValueMap<>();
        postParameters.add("userCode", "291974");
        HttpHeaders headers = new HttpHeaders();
        headers.add("Content-Type", "application/x-www-form-urlencoded");
        HttpEntity<MultiValueMap<String, Object>> r = new HttpEntity<>(postParameters, headers);

        String data= restTemplate.postForObject("http://10.10.12.27:9000/Criteria", r, String.class);
        System.out.println(data);

 

注意:
    RestTemplate 會對請求頭判斷,會更具請求頭不通走不同的邏輯。默認是 text/html /*
      如果是  application/x-www-form-urlencoded  這個請求頭  會對數據鏡像 url 編碼。
    
    不可以傳遞 非 字符串類型的數據!!



關於 HttpEntity 這個對象的一點說明

  
HttpEntity  就是存放 兩個字段數據  一個是請求數據  一個是請求頭!  從定義上就可以看到   雖然可以 POST 等 提交from  數據  但是好是推薦使用實體類型來傳遞 HTTP 請求數據。
public class HttpEntity<T> {
    private final HttpHeaders headers;
    private final T body;
    
    public HttpEntity(T body, MultiValueMap<String, String> headers) {
        this.body = body;
        HttpHeaders tempHeaders = new HttpHeaders();
        if (headers != null) {
            tempHeaders.putAll(headers);
        }
        this.headers = HttpHeaders.readOnlyHttpHeaders(tempHeaders);
    }
}

 


 


免責聲明!

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



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