Bir IP kameradan HTTP kullanarak görüntü almaya çalışıyorum. Kamera, HTTP temel kimlik doğrulaması gerektirir, bu yüzden gelen istek başlığı eklemek zorunda:Bir URL nesnesinde özel HTTP isteği başlıklarını ayarlama çalışmıyor
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"));
Tahmin edebileceğin gibi sonradan, ImageIO.read()
için url
nesneyi geçirerek ve am ben her ne kadar, 401 Yetkisiz bir HTTP alıyorum user
ve pass
doğrudur.
Neyi yanlış yapıyorum?
Ayrıca, new URL("http://user:[email protected]/snapshot.jpg")
'u da denedim, ancak bu da çalışmıyor. java.net.HttpURLConnection
uzanan sınıf sun.net.www.protocol.http.HttpURLConnection
, aşağıdaki yöntem getRequestProperty(String key)
olarak
Teşekkür ederim, şimdi 'null' olma nedenini anlıyorum. Ama neden HTTP 401'i döndürüyor? "Yetkilendirme" özelliğinin hiç ayarlanmamış olması mümkün mü? –
@Blagovest Buyukliev, eğer HttpURLConnection öğesini genişletirse, o zaman "HttpURLConnection" 'a atayın ve 'getErrorStream()' diyerek hatanın 'InputStream'i alın. Bu, HTTP 401 hatasının iletisini içerir. Bunun dışında sana yardım edemem. –