簡體   English   中英

RESTFUL碼頭服務返回403錯誤Java

[英]RESTFUL jetty service returning 403 error java

當我嘗試從我的Java代碼調用它時,我面臨來自https REST服務的HTTP 403 Forbidden響應。 您能告訴我我是否在這里遺漏了什么嗎?

請注意,當我從任何瀏覽器/ SOAPUI / Chrome Postman客戶端觸發請求時,服務器將返回預期數據。 使用2個對等證書-如發送請求后來自soapui的ssl信息所示。

該代碼段已附加。 [我在代碼中設置的標頭取自從成功請求中找到的請求標頭]

HttpsURLConnection connection = (HttpsURLConnection)new URL("https://server address").openConnection();
connection.setRequestProperty("Authorization", "Basic " + authStringEnc);
connection.setRequestProperty("Content-Type", "application/json");
connection.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
connection.setRequestProperty("Accept-Encoding","gzip, deflate, br");
connection.setRequestProperty("User-Agent", "Apache-HttpClient/4.1.1");
connection.addRequestProperty("Connection", "Keep-Alive");
connection.addRequestProperty("Cache-Control","no-cache");
connection.setRequestMethod("GET");
connection.connect();

System.out.println("Response Code : " + connection.getResponseCode()+" "+connection.getResponseMessage());

響應碼:403 Forbidden

您可以檢查服務器URL是否為Java可接受格式嗎?
有時Java需要轉義字符才能正確識別字符串。 這個問題: 所有轉義字符是什么? ,可以幫助您檢查是否正在使用這些字符中的任何一個。 還要檢查函數中的轉換是否正確完成。
另外,如果您具有更復雜的URL,請考慮使用java.net.URL。
最后,檢查用戶代理參數“ 設置Java URLConnection的用戶代理”

感謝您的答復。 問題在於會話cookie用於連接。 一旦帶有JSESSIONID的cookie作為標頭傳遞,我們就可以連接並使用響應代碼HTTP 200獲取響應。 再次感謝。

暫無
暫無

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

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