доступ к аутентифицированному URl изображения в Android - PullRequest
1 голос
/ 20 июня 2011

Мне нужно загрузить и обновить изображение с URL, а URL-адрес аутентифицирован .htaccess

Кто-нибудь знает, как получить доступ к этому файлу изображения

Мой вопрос: - как установить учетные данные (в HttpUrlConnection) при доступе к такому файлу

Ответы [ 2 ]

1 голос
/ 27 марта 2013
Bitmap bmImg;
public Bitmap downloadFile(String stringURL)
{
    try 
    {
        DefaultHttpClient client = new DefaultHttpClient();
        client.getCredentialsProvider().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), new UsernamePasswordCredentials(myHtaccessUsername, myHTaccessPassword)); 
        HttpGet request = new HttpGet(stringURL);
        HttpResponse response = client.execute(request);
        HttpEntity entity = response.getEntity();
        InputStream inputStream = entity.getContent();
        bmImg = BitmapFactory.decodeStream(inputStream);
    } 
    catch (IOException e) 
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return bmImg;
}

Это код, который я использовал для решения этой проблемы.Я использовал HttpUrlConnection для извлечения фотографий с любого общедоступного URL-адреса, но когда он пришел на конкретный сервер, требующий базового уровня доступа (учетные данные htaccess), я не смог использовать HttpUrlConnection, который я предполагаю, из-за того, как HttpUrlConnection обрабатывает рукопожатие или что-то подобное,Используя DefaultHttpClient вместе с объектами HttpGet, HttpResponse и HttpEntity, я смог без проблем вытащить ресурс фотографий.

0 голосов
/ 20 июня 2011

Если это обычная аутентификация, просто используйте аутентификатор (обратите внимание, это только для запроса GET)

Authenticator.setDefault(new Authenticator(){
protected PasswordAuthentication getPasswordAuthentication() {
    return new PasswordAuthentication("myuser","mypass".toCharArray());
}});

, затем установите HttpURLConnection ниже этого значения.

...