当前位置: 首页 > 知识库问答 >
问题:

用于从url下载图像的ResponseCode 400

巫新知
2023-03-14

这是我为从url下载图像而编写的代码,但使用java.io.FileNotFoundException重新引用响应代码400

@Override
protected Void doInBackground(String... strings) {

    try {
        URL url = new URL(strings[0]);
        HttpURLConnection con = (HttpURLConnection) url.openConnection();
        con.setRequestProperty("User-Agent", "Mozilla/5.0 
        (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) 
        Gecko/20100316 Firefox/3.6.2");
        con.setRequestMethod("GET");
        con.setDoOutput(true);
        con.connect();

        File file = Environment.getExternalStorageDirectory();
        File f1 = new File(file, "_Url download");
        if(!f1.exists()){
            f1.mkdir();
        }

        fileName = System.currentTimeMillis() + ".jpg";

        File f2 = new File(f1, fileName);
        f2.createNewFile();

        InputStream er = con.getErrorStream();
        Log.i("ErrorCode", con.getResponseCode()+"");
        Log.i("ErrorMessage", con.getResponseMessage());
        Log.i("ErrorStream", er+"");

        InputStream in = con.getInputStream();
        FileOutputStream out = new FileOutputStream(f2);

        byte[] buffer = new byte[1024];
        int len;

        System.out.println(Arrays.toString(buffer));

        while((len = in.read(buffer, 0, 1024)) > 0) {
            out.write(buffer, 0, len);
        }

        out.close();
        in.close();

    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (ProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        Log.i("IOException", e.toString());
    }
    return null;
} 
2021-06-26 09:26:25.532 26760-26890/com.example.urldownload I/ErrorCode: 400

2021-06-26 09:26:25.533 26760-26890/com.example.urldownload I/ErrorMessage: Bad Request

2021-06-26 09:26:25.533 26760-26890/com.example.urldownload I/Errorstream: buffer(com.android.okhttp.internal.http.Http1xStream$FixedLengthSource@fbb2c70).inputStream()

2021-06-26 09:26:25.534 26760-26890/com.example.urldownload I/IOException: java.io.FileNotFoundException: https://instagram.fidr1-1.fna.fbcdn.net/v/t51.2885-15/e35/190664842_184685183538740_5039921250568173600_n.jpg?tp=1&_nc_ht=instagram.fidr1-1.fna.fbcdn.net&_nc_cat=108&_nc_ohc=RrEU4lTwYCwAX-vgVQ4&edm=AABBvjUBAAAA&ccb=7-4&oh=3ac34be54793fa59134380fd9e0bd617&oe=60DCB7E6&_nc_sid=83d603
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>

共有1个答案

笪涛
2023-03-14

使用picasso将图像保存到外部存储中,您可以执行以下操作

  private Target mTarget = new Target() {
  @Override
  public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
      // Perform simple file operation to store this bitmap
  }

  @Override
  public void onBitmapFailed(Drawable errorDrawable) {
  }

  @Override
  public void onPrepareLoad(Drawable placeHolderDrawable) {
  }
  }

...

Picasso.with(this).load("url").into(mTarget);

这里的“目标”是毕加索提供的一个类,它有非常简单的方法来理解...这是一个简单的方法

 类似资料:
  • 我想从我的应用程序中的URL加载一个图像,所以我首先尝试使用Objective-C,它成功了,但是,使用Swift,我有一个编译错误: “imageWithData”不可用:使用对象构造“UIImage(数据:)” 我的职能: 在目标C中: 有人能给我解释一下为什么不能与Swift一起工作,以及我如何解决这个问题。

  • 问题内容: 我正在尝试使用我的应用程序中的URL和按钮下载图像。当我在手机上运行它时,我无法下载该图像。任何人都可以指出这个问题。我在这里先向您的帮助表示感谢 :) 这是我的代码。 问题答案: 您可以通过两种方式从url下载图像 1。您 可以使用Glide库从url加载图像,看下面的代码,它可以轻松地为您提供帮助 编译这个库 而不是像这样加载图像 2。如果您不想使用第三方库,请尝试此 创建一个异步

  • 问题内容: 我想从我的应用程序中的URL加载图像,因此我首先尝试使用Objective-C,但是它可以正常工作,但是对于Swift,我遇到了编译错误: ‘imageWithData’不可用:使用对象构造’UIImage(data :)’ 我的功能: 在Objective-C中: 有人可以解释一下为什么Swift无法使用它,以及如何解决该问题。 问题答案: Xcode 8或更高版本•Swift 3或

  • 我试图下载一个图像从一个URL与Python使用请求和Shutil库。我的代码如下: 这段代码适用于我尝试过的大多数其他图像URL(例如:https://tinyjpg.com/images/social/website.jpg)但是,对于代码中的图像url,创建了一个1kb的文件,其中有一个错误:“看起来我们不支持此文件格式。” 我也尝试过: 可以使用Seleniumwire执行此操作-我使用的

  • 我正在学习Python 4/5个月,这是我从零开始构建的第三个项目,但我不能自己解决这个问题。 此脚本为每个给定的url下载1个图像。我不能找到一个解决方案,如何实现线程池执行器或异步在这个脚本。我不知道如何链接与图像编号的url保存图像部分。我建立了我需要下载的所有网址的判决,但我实际上如何保存正确名称的图像?还有其他建议吗? 另外,目前的网址都是假的。 同步版本: URL列表:

  • 当我从URL下载图像时,大约需要6秒(即使图像不是高清的),并且日志中出现错误。 这是我下载图像的代码: 这是我得到的日志错误: 代码工作,因为我可以看到图像,但很慢,这个错误对我来说不是很好,我做错了什么?(我用的是Swift 3) 编辑: 我在一个白色的新项目中尝试了这段代码,但实际上什么都没有,但仍然收到了它。 我也复制/粘贴了这段代码,但是得到了同样的错误。 我更改了URL,现在下载时间是