emmm ããã
å½ä½ ç¨OkHttpå»è¯·æ±åå°çæ°æ®ï¼åå°ç»ä½ è¿åäºä¸ä¸ªJsonï¼OkHttpæ¿å°è¿ä¸ªResponseï¼ç¶åå¼å¼å¿å¿ç response.body().toStirng() å¾å°äºæ°æ®ï¼å»ç¨Gson转ï¼ä½å´è½¬ä¸åºæ¥ï¼
ä½ ç¨JsonObjectãGsoné½å¤çä¸äºè¿ä¸ªResponseï¼æ¯å¦ææç¨è¿åçæ°æ®å» JSON-Handle åäºè§£ææ¯å¯ä»¥åºæ¥çï¼èæå¨å¼ºè½¬çæ¶åå´è½¬ä¸åºè¿ä¸ªç±»å¢ï¼
è¿å¾æå¯è½æ¯åå°æ²¡æ对è¾åºçæ°æ®è¿è¡ åºååæè æ ¼å¼ä¸ çå¤çãæ以æ们è¦èªå·±å¯¹è¿ä¸ªæ°æ®è¿è¡å¤çå¦ï¼è½ååå°æ²é好就好å¦ï¼ä½æ¯ä»ä»¬ä¸è¬é½ä¼å«ä½ èªå·±å¤çâ¦ï¼
对没éï¼æ们è¦äºæ¬¡å¤çresponseè¿äºå符ï¼èèå®çç¼ç æ ¼å¼â¦
(ä¸è¬é½æ¯ç¼ç æ ¼å¼çé®é¢ï¼å 为åå°ç¨çæ¯linuxï¼android ä¸è¬æ¯Win/Linuxï¼ä¸åçæä½ç³»ç»æ¯æçç¼ç æ ¼å¼è¯å®æ¯ä¸åçã
private String getResponseString(Response response) {
String res = "";
ResponseBody responseBody = response.body();
long contentLength = responseBody.contentLength();
if (!bodyEncoded(response.headers())) {
BufferedSource source = responseBody.source();
try {
source.request(Long.MAX_VALUE); // Buffer the entire body.
} catch (IOException e) {
e.printStackTrace();
}
Buffer buffer = source.buffer();
Charset charset = Charset.forName("UTF-8");
MediaType contentType = responseBody.contentType();
if (contentType != null) {
try {
charset = contentType.charset(Charset.forName("UTF-8"));
} catch (UnsupportedCharsetException e) {
LogUtil.e(TAG, e.getMessage());
e.printStackTrace();
}
}
if (contentLength != 0) {
res = buffer.clone().readString(charset);
}
}
return res;
}
private boolean bodyEncoded(Headers headers) {
String contentEncoding = headers.get("Content-Encoding");
return contentEncoding != null && !contentEncoding.equalsIgnoreCase("identity");
}