我得到了類似的東西:
(使用:org.apache.http.HttpResponse)
String jsondata = "{\"issuerName\": \"Sarl.\"}";
try {
httpPost.setHeader(getAuthorizationHeader(LOGIN_KEY));
StringEntity jsonparam = null;
jsonparam = new StringEntity(jsondata);
jsonparam.setChunked(true);
httpPost.addHeader("content-type", "application/json;charset=UTF-8");
httpPost.setEntity(jsonparam);
response = httpClient.execute(httpPost);
if (response.getStatusLine().getStatusCode() == 200) {
// some code
在這種情況下一切都很好,有效載荷 Sarl。但是,如果我更換
String jsondata = "{\"issuerName\": \"Sarl.\"}";
經過
String jsondata = "{\"issuerName\": \"Sàrl.\"}";
序列化似乎不正確,因為遠程 API 從不回應 200(它與 Postman 配合良好,具有相同的有效負載。
有人有想法嗎?
uj5u.com熱心網友回復:
您需要為 StringEntity 指定 UTF-8,即
jsonparam = new StringEntity(jsondata, "UTF-8");
您可能還需要Accept-Encoding為 UTF-8設定HTTP 標頭,即
httpPost.setHeader("Accept-Encoding", "UTF-8");
uj5u.com熱心網友回復:
因為它與 Postman 配合良好,所以我猜您使用的 IDE 存在問題:它不使用 Unicode。更多資訊在這里。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/402790.html
標籤:
