我試圖從URL下載文件。服務器運行apache httpd並首先要求用戶名密碼登錄/認證。然後當我把這個URL放到瀏覽器中時,我得到下載提示下載這個zip文件。Java:URL請求認證時從URL下載文件
我該如何在Java中做到這一點?我正在學習Java,我來自Python背景。任何幫助是極大的讚賞。
編輯:服務器在HTTPS身份驗證上運行。
我試圖從URL下載文件。服務器運行apache httpd並首先要求用戶名密碼登錄/認證。然後當我把這個URL放到瀏覽器中時,我得到下載提示下載這個zip文件。Java:URL請求認證時從URL下載文件
我該如何在Java中做到這一點?我正在學習Java,我來自Python背景。任何幫助是極大的讚賞。
編輯:服務器在HTTPS身份驗證上運行。
如果服務器使用基本身份驗證,你應該能夠通過在URL中指定的用戶名/密碼來獲取資源:http://user:[email protected]/path/filename.ext
瀏覽器支持這個,所以你可以在瀏覽器中迅速試試吧。
我試過這個,它不起作用。服務器使用HTTPS。 – user1757703
或者,如果你想成爲它的安全:
HttpResponse res;
DefaultHttpClient httpclient = new DefaultHttpClient();
String authorizationString = "Basic " + Base64.encodeToString(("admin" + ":" + "").getBytes(), Base64.NO_WRAP); //this line is diffe
authorizationString.replace("\n", "");
try {
HttpGet request = new HttpGet(URI.create(url));
request.addHeader("Authentication",authorizationString);
res = httpclient.execute(request);
return new MjpegInputStream(res.getEntity().getContent());
} catch (ClientProtocolException e) {e.printStackTrace();}
} catch (IOException e) {e.printStackTrace();}
那是HTTP(基本)身份驗證或基於Cookie的自定義系統(表)? – SLaks
它使用HTTPS而不是HTTP基本。 – user1757703
HTTPS與我所問的問題是正交的。這兩個選項都可以通過HTTP或HTTPS使用。 (雖然他們不應該與HTTP一起使用) – SLaks