對於我的Android應用程序,我需要從需要登錄的站點下載文件。它不是基本的http認證,而是形成仿真。如何使用HttpURLConnection登錄並下載文件
作爲新到Android我真的不知道如何開始,但在PHP很容易捲曲:
// Set standard options
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, "somecookiejar");
curl_setopt($ch, CURLOPT_COOKIEFILE, "somecookiefile");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// Login
curl_setopt($ch, CURLOPT_URL, "https://example.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_POSTFIELDS, "username=myusername&password=mypassword");
curl_exec($ch);
// Get the file
curl_setopt($ch, CURLOPT_URL, "http://example.com/files/myfile.mp3");
curl_setopt($ch, CURLOPT_POST, 0);
writefile(curl_exec($ch), "myfile.mp3");
curl_close($ch);
我希望在得到這在Android中做任何幫助。
注:我提HttpURLConnection類的主題,但其他的建議當然是非常歡迎:)
編輯更多:我想我要澄清一點。在登錄表單的第一個請求中設置了用戶名和密碼。服務器返回一組cookie,然後將其交給發生實際文件下載的第二個請求。該代碼實際上是PHP的一個工作示例(雖然是匿名的),我的具體問題是在請求之間處理cookie。在cUrl中,所有這些cookie都會自動發生。 謝謝!
對不起,誤解了你的問題。 –