postForObject提交報錯

如果直接使用在postForObject中把對象傳入很容易出現no suitable HttpMessageConverter found for request type的錯誤,建議直接先轉成字符串,見jsonObj.otString(),網上有人說設置RestTemplate的HttpMessageConverter,試了一下要引入各種包。另外要注意中文編碼問題,網上有人說StringHttpMessageConverter默認使用ISO-8859-1,要指定爲UTF-8編碼,自己嘗試沒有成功,最後通過指定contentType的方式解決了。

最近使用RestTemplate發送post請求,遇到了很多問題,如轉換httpMessage失敗、中文亂碼等,調了好久才找到下面較爲簡便的方法         

        RestTemplate restTemplate = new RestTemplate();

        HttpHeaders headers = new HttpHeaders();
        MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
        headers.setContentType(type);
        headers.add("Accept", MediaType.APPLICATION_JSON.toString());
        
        JSONObject jsonObj = JSONObject.fromObject(params);
        
        HttpEntity<String> formEntity = new HttpEntity<String>(jsonObj.toString(), headers);


        String result = restTemplate.postForObject(url, formEntity, String.class);
發佈了11 篇原創文章 · 獲贊 16 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章