簡體   English   中英

具有特殊字符java的http請求標頭

[英]http request header with special character java

我正在嘗試將httpGet與標頭中包含非法字符的令牌一起使用。 我在Java中收到錯誤401,在郵遞員中,我成功獲得了響應。

HttpGet httpGet = new HttpGet(SF_DEFAULT_HOST + REPORT_URL);
header.add("Authorization", "OAuth " + accessToken);;
JSONObject jsonUserInfo = WebClient.fetch(httpGet);

在這種情況下,令牌等於=> 00D90000000sYg0!

圖片來自郵遞員,請求成功響應。

圖片來自郵遞員,請求成功響應。

您正在嘗試使用非US-ASCII字符傳遞令牌,這就是您面臨錯誤的原因。 您需要先對標題進行編碼,然后再將其添加到請求中。

做編碼的Java類是java.net.URLEncoder。

注意:RFC 2616表示您只能在HTTP標頭中使用US-ASCII。 其他字符必須進行編碼。

在C#中,有直接方法可以添加具有非US-ASCII字符的令牌。

HttpClient queryClient = new HttpClient();

queryClient.DefaultRequestHeaders.TryAddWithoutValidation(“ Authorization”,“ Bearer” + AuthToken);

暫無
暫無

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

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