2017-02-23 37 views
0

我正在使用Postman發出GET請求。作爲請求的一部分,我選擇了AuthorizationBasic Auth,然後填寫了我的用戶名和密碼。瞭解Postman請求是如何構建和複製的java

請求成功。現在,我想用Java代碼複製它。

在Java中我嘗試這樣做:

URL myURL = new URL(serviceURL); 
HttpURLConnection myURLConnection = (HttpURLConnection)myURL.openConnection(); 
String userCredentials = "username:password"; 
myURLConnection.setRequestProperty ("Authorization", userCredentials); 

儘管這似乎是類似於郵差不,這是行不通的。

如何在Java中複製上述Postman請求?

+2

你不能只是做一些研究如何基本身份驗證的作品?喜歡閱讀:https://code.tutsplus.com/tutorials/wp-rest-api-setting-up-and-using-basic-authentication--cms-24762 – Tom

+0

我不知道郵差,但很容易猜到它使您能夠導出它所處理的HTTP請求。檢查這個輸出來知道你應該設置什麼數據。另外我認爲你應該設置一個頭域而不是請求屬性。 – Aaron

+0

由於Tom的鏈接中的內容指出,標題需要base64對用戶名>密碼進行編碼以進行基本身份驗證。 – Mena

回答

1

作爲this article(章節「基本驗證如何工作」)指出,標頭需要base64編碼用戶名:密碼進行基本驗證。

在郵遞員,你可以在頭文件批量編輯看到編碼值:

enter image description here

您可以查找Java的自己Base64實用工具類這樣做。

編輯

如果您既可以使用Java的OkHttpUnirest框架,你可以使用bn.強調了解決方案,快速地使用,而不是做「手」有現成的代碼模板。

2

Postman UI上有一個鏈接,用於使用OkHttpUnirest或其他語言和庫爲Java生成代碼片段。

步驟1 enter image description here

步驟2

enter image description here

+0

因此,帶有'.addHeader(「authorization」,「Basic ems2djsSFSSF4madJDA ==」)''的部分,該代碼如何生成?如果我使用相同的用戶名和密碼,郵差和另一個環境中是否一樣? – octavian

+0

@octavian,您將根據您的身份驗證方案向您正在使用的任何庫提供憑據,例如,請參閱http://square.github.io/okhttp/3.x/okhttp/。或者,您可以自己將憑據編碼爲base 64。 Java 8:java.util.Base64.getEncoder()。encodeToString((userCredentials).getBytes()); –