HTTPを使用してIPカメラからイメージを取得しようとしています。カメラは、HTTP基本認証を必要とするので、私は、対応するリクエストヘッダを追加する必要があります。URLオブジェクトにカスタムHTTPリクエストヘッダーを設定できない
URL url = new URL("http://myipcam/snapshot.jpg");
URLConnection uc = url.openConnection();
uc.setRequestProperty("Authorization",
"Basic " + new String(Base64.encode("user:pass".getBytes())));
// outputs "null"
System.out.println(uc.getRequestProperty("Authorization"));
私は後でImageIO.read()
にurl
オブジェクトを渡しています、そして、あなたが推測できるように、私は不正なHTTP 401を得ています、が、 user
とpass
は正しいです。
私は間違っていますか?
私もnew URL("http://user:[email protected]/snapshot.jpg")
を試しましたが、それでも動作しません。 java.net.HttpURLConnection
を拡張するクラスsun.net.www.protocol.http.HttpURLConnection
、以下の方法でgetRequestProperty(String key)
ありがとうございました、今、私は 'null'を得る理由を理解しています。しかし、なぜHTTP 401を返しますか? 「Authorization」プロパティがまったく設定されていない可能性はありますか? –
@Blagovest Buyukliev、 'ucがHttpURLConnection'を継承している場合は' HttpURLConnection'に型キャストし、 'getErrorStream()'を呼び出すことでエラーの 'InputStream'を取得します。これには、HTTP 401エラーのメッセージが含まれています。それ以外は、私はあなたを助けることはできません。 –