[英]how to use HttpsUrlConnection in java
我有一個命令行:
curl -u username:passwd -k "https://myserver/a/b/c"
它有效,當我在Ubuntu或Cygwin下調用它時,我會獲得正確的信息。
現在,我願意用Java完成它。 所以我有這樣的Java代碼:
public class Test {
public static String auth = "username:passwd";
public static String url = "https:/myserver/a/b/c";
public static void main(String[] args) {
try {
URL url = new URL(url);
final byte[] authBytes = auth.getBytes(StandardCharsets.UTF_8);
String encoding = java.util.Base64.getEncoder().encodeToString(authBytes);
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.setRequestProperty("Authorization", encoding);
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
但是它似乎不起作用,總是返回HTTP響應代碼411。java代碼是否有問題?
提前致謝。
HTTP響應代碼411表示“服務器在沒有定義Content-Length的情況下拒絕接受請求”。
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
HttpsUrlConnection
應該能夠為您做到這一點。 檢出setFixedLengthStreamingMode()
。 我認為您還需要setDoOutput()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.