For my Android application, I need to download a file from a site that requires a login. This is not basic HTTP authentication, but rather emulation.
Being new to Android, I really don't know how to get started, but in PHP it's easy with cUrl:
// 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);
I would appreciate any help in doing this on Android.
Note. I mention the HttpURLConnection in the subject, but other suggestions, of course, are more than welcome :)
Edit: I think I should clarify a bit. The first request for the registration form sets the username and password. The server returns a set of cookies, which are then passed to the second request, where the actual download of the file takes place. The code is actually a working example from PHP (albeit anonymous), and my specific problem is handling cookies between requests. In cUrl, all these cookies occur automatically. Thanks!