我能夠在Postman中成功執行GET命令,它返回我需要的各種頭文件。我使用基本身份驗證此第一個GET:Java http GET始終爲空
GET http://SERVER/qcbin/api/authentication/sign-in
我試圖用Java來實現這一點,但什麼都不回來了。我一直得到一個null。
有人能告訴我我做錯了什麼嗎?我無法弄清楚我的錯誤。
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Base64;
public class test2 {
public static void main(String[] args) {
try {
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("myproxy", 8080));
URL url = new URL ("http://SERVER/qcbin/api/authentication/sign-in");
byte[] credBytes = ("jsmith" + ":" + "abc123").getBytes();
Base64.Encoder base64Encoder = Base64.getEncoder().withoutPadding();
String encoding = base64Encoder.encodeToString(credBytes);
HttpURLConnection connection = (HttpURLConnection) url.openConnection(proxy);
connection.setRequestMethod("GET");
connection.setDoOutput(true);
connection.setRequestProperty ("Authorization", "Basic " + encoding);
內容在下列行後設置爲空。
InputStream content = (InputStream)connection.getInputStream();
BufferedReader in =
new BufferedReader (new InputStreamReader (content));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
} catch(Exception e) {
e.printStackTrace();
}
}
你做你的郵遞員在機器上測試java代碼運行?你可以發表你的請求的'curl -vvv'嗎? – 2016-09-26 18:10:39
你爲什麼要調用'setDoOutput(true)'?在這種情況下,連接不會期望一些輸出嗎? –
@RC - 是的,同一臺機器。我是非常新的Java。我不熟悉捲曲。 –