簡體   English   中英

如何在Java中獲取沒有轉義序列的post請求的響應主體?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM