簡體   English   中英

如何計算 Http Post 請求的請求正文的 Content-Length

[英]How to calculate Content-Length of a request body of a Http Post Request

我正在嘗試計算 http 發布請求的請求正文的內容長度,但我不斷收到指示錯誤內容長度的錯誤。 請求正文如下所示:

Map<String, String> body = {
  'grant_type': 'authorization_code',
  'client_id': 'clientid',
  'code': authCode,
  'redirect_uri': 'http://localhost:8080/login/callback',
  'code_verifier':
      'codeverifier',
};

我嘗試了幾種解決方案,例如將正文的內容連接成一個字符串,例如以下內容,然后將其轉換為字節數組並發送它的長度,但沒有奏效。

String bodyStr = "grant_type:authorization_code" +
    "client_id:clientid" +
    "code:{$authCode}" +
    "redirect_uri:http://localhost:8080/login/callback" +
    "code_verifier:codeverifier";
    List<int> bytes = utf8.encode(bodyStr);

post 請求正文是 x-www-form-urlencoded 格式,內容長度必須正確計算。 任何幫助表示贊賞,謝謝。

你不需要制作一個整數列表......

String bodyStr = "...";
byte[] bytes = bodyStr.getBytes(Charset.forName("UTF-8"));
int len = bytes.length;
response.setContentLength(len);
response.getOutputStream().write(bytes);

此示例使用來自 HttpServlet 的 HttpServletResponse 對象。 不確定這是否是您所需要的。

我已經大量使用了它,效果很好。

我自己封裝的。 一般來說,我不需要計算它。 除非是特殊場合。 推薦okhttp3

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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