2012-03-27 3 views
0

Мне нужно загрузить один файл с URL-адреса, который я даю из xml после подключения к другому URL-адресу. Моя проблема в том, что мне нужен один и тот же пользовательский агент и ip для выполнения обоих действий.Пользовательский агент на url.getContent();

Чтобы получить XML, я использовать PHP-код, размещенный на моем сервере, и я отправить его пользовательский агент моего приложения:

String ua=new WebView(ct).getSettings().getUserAgentString().trim(); 
ua = ua.replaceAll(" ", "%20"); 

Тогда я разбора XML с общим RssParserSax, который дает мне все, что мне нужно.

После, я пытаюсь загрузить файл в вытяжке вар и я это сделать:

Drawable dd = ImageOperations(url); 

private Drawable ImageOperations(String url) { 
     try { 
      InputStream is = (InputStream) this.fetch(url); 
      Drawable d = Drawable.createFromStream(is, "src"); 
      return d; 
     } catch (MalformedURLException e) { 
      return null; 
     } catch (IOException e) { 
      return null; 
     } 
    } 

private Object fetch(String address) throws MalformedURLException,IOException { 
     URL url = new URL(address); 
     Object content = url.getContent(); 
     return content; 
    } 

Но я не посылают агента пользователя, он не дает мне ничего.

ответ

2

Наконец я сделал это, чтобы решить:

Bitmap bmImg; 

try { 
    URL url = new URL(addres); 
    HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 

    conn.addRequestProperty("User-Agent", ua); 
    conn.setDoInput(true); 
    conn.connect(); 
    InputStream is = conn.getInputStream(); 

    bmImg = BitmapFactory.decodeStream(is); 
    imagen.setImageBitmap(bmImg); 
    imagen.setScaleType(ScaleType.FIT_XY); 
} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
Смежные вопросы