在做項目的時候,需要需要請求另一個項目的接口,需要用到http://去請求,於是就遇到了這個錯誤:java.io.IOException Server returned HTTP response code 415 ,當時自己感覺代碼寫的沒有問題呀(好吧,是我太自戀了),於是上網查了好多資料,總結出以下三點會出現這個錯誤:
1.http://請求的路徑是否一致
2.查看你的 http 請求方法,以及服務器端的設置比如:有一個 強制用 post 請求的接口,你是不是用了非 post 請
3.psot請求參數設置,是不是必須json格式
好了先看下我沒有解決bug之前的代碼,如下:
String url1=propertyResolver.getProperty("custom.cert.url");
String url=url1+"/sendCustomTextMessage";
ReviewResult reviewResult = new ReviewResult();
reviewResult.setOpenid(review.getOpenid());
reviewResult.setContent(content);
//將對像轉成json格式
String json = StringUtil.object2Json(reviewResult);
//請求接口
ApiResult apiResult = ApiResult.create(HttpUtil.post(url,json));
if(apiResult.getInt("status") == 1){
log.info("------------請求客服消息接口成功------------");
} else {
log.info("------------請求客服消息接口失敗------------");
}
這時測試的時候報了 java.io.IOException Server returned HTTP response code 415 這個錯誤
下面是我修改之後的代碼:
// 發送客服消息
String url1=propertyResolver.getProperty("custom.cert.url");
String url=url1+"/sendCustomTextMessage";
ReviewResult reviewResult = new ReviewResult();
reviewResult.setOpenid(review.getOpenid());
reviewResult.setContent(content);
//將對像轉成json格式
String json = StringUtil.object2Json(reviewResult);
Map<String, String> header = new HashMap<String, String>();
header.put("Content-Type","application/json");
//請求接口
ApiResult apiResult = ApiResult.create(HttpUtil.post(url,json, header));
if(apiResult.getInt("status") == 1){
log.info("------------請求客服消息接口成功------------");
} else {
log.info("------------請求客服消息接口失敗------------");
}
可以看到我添加了"Content-Type","application/json"
這句話,原因就是應爲我沒有明確json格式,加了這麼一段話,於是很順利的就請求了接口。