0

URLから画像をダウンロードしようとしています。私が直面している問題は、URL に www がない場合にエラーが発生することですが、www を追加すると正常に動作します。これらの URL を Web サービスから取得していますが、www があるものとないものがある可能性があり、この問題を解決するための解決策を探しています。

URL がそのようなものであれば問題ありません: http://www.grindzmyreels.com/wp-content/uploads/2013/02/minion.jpg

しかし、この場合、エラーが発生します: http://grindzmyreels.com/wp-content/uploads/2013/02/minion.jpg

コードは次のとおりです。

public void DownloadImage()
       {      

           HttpClient client = new DefaultHttpClient();
           HttpResponse httpResponse;
           Bitmap bmp = null;

           try{   

               httpResponse = client.execute(new HttpGet("http://www.grindzmyreels.com/wp-content/uploads/2013/02/minion.jpg"));
              //int responseCode = httpResponse.getStatusLine().getStatusCode();
              HttpEntity entity = httpResponse.getEntity();

              if (entity != null)
              {
                  InputStream in = entity.getContent();
                  bmp = BitmapFactory.decodeStream(in);

                  in.close();

                  String Path = bmp.toString();
                  Context context = getApplicationContext();                       
                  File mydir = context.getDir("MyFolder", Context.MODE_PRIVATE); //Creating an internal dir;
                  File fileWithinMyDir = new File(mydir, Path ); //Getting a file within the dir.

                  FileOutputStream out = new FileOutputStream(fileWithinMyDir);                   
                  out.close();


                   extStorageDirectory = Environment.getExternalStorageDirectory().toString();
                   OutputStream outStream = null;
                   File file = new File(extStorageDirectory, Name+".PNG");                    
                   outStream = new FileOutputStream(file);
                   bmp.compress(Bitmap.CompressFormat.PNG, 100, outStream);

                   filePath = file.toString();
                   outStream.flush();
                   outStream.close();  

              }                   
           } 
           catch (ClientProtocolException e)  
           {
               client.getConnectionManager().shutdown();
               e.printStackTrace();
           } 
           catch (IOException e) 
           {
               client.getConnectionManager().shutdown();
               e.printStackTrace();
           }   

       }

どうもありがとう。

4

2 に答える 2