2012-03-27 57 views
0

我需要从连接到其他网址后,我从xml给出的url下载一个文件。我的问题是,我需要相同的用户代理和IP来执行这两个操作。url.getContent()上的用户代理;

要获得XML,我用的是我的服务器上承载的PHP代码,我把它我的应用程序的用户代理:

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

然后我解析XML与通用RssParserSax,让我我所需要的。

后,我尝试将文件下载到绘制var和我这样做:

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(); 
}