[英]How to get response body of a post request without escape sequences in Java?
我正在嘗試使用以下代碼將HttpResponse的響應主體轉換為String:
HttpGet request = new HttpGet(url);
request.setHeader("Accept", "application/json");
response = client.execute(request);
EntityUtils.toString(response.getEntity(), standardCharsets.UTF_8.displayName());
將其轉換為String后的預期響應如下:
{"errors": ["permission denied"]}
這段代碼直到最近才運行良好。 但現在響應主體以某種方式被修改為:
{"errors":["1 error occurred:\n\t* permission denied\n\n"]}
我不明白如何將“1錯誤發生”消息插入到響應主體中,因為Postman中同一個調用的響應給了我適當的響應,即:
{"errors": ["permission denied"]}
我已經徹底檢查了代碼,並確定沒有手動插入“1錯誤發生”消息。
這些是郵遞員的回復標題:
cache-control →no-store
content-length →33
content-type →application/json
date →Thu, 30 May 2019 06:52:33 GMT
status →403
這些是來自HttpClient調用的響應標頭:
Cache-Control: no-store
Content-Type: application/json
Date: Thu, 30 May 2019 09:06:21 GMT
Content-Length: 60
唯一的區別是沒有打印狀態代碼。 但是通過response.getStatusLine().getStatusCode()
檢查狀態代碼也會產生403。
看起來您正在使用Apache HttpClient,它不會以這種方式修改響應。 這絕對是服務器生成的響應。 檢查Postman中的請求配置,看看是否有任何其他標頭可能會改變服務器行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.