(如何)我可以使用JSoup下载图像?

33 java jsoup

我已经知道图像的位置了,但为了简单起见,我想用JSoup本身下载图像.(这是为了简化获取cookie,推荐人等)

这是我到目前为止:

//Open a URL Stream
Response resultImageResponse = Jsoup.connect(imageLocation).cookies(cookies).ignoreContentType(true).execute();

// output here
OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(new java.io.File(outputFolder + name));
//BufferedWriter out = new BufferedWriter(new FileWriter(outputFolder + name));
out.write(resultImageResponse.body());          // resultImageResponse.body() is where the image's contents are.
out.close();
Run Code Online (Sandbox Code Playgroud)

小智 45

在通过JSoup和一些实验找到答案之前,我甚至没有写完问题.

//Open a URL Stream
Response resultImageResponse = Jsoup.connect(imageLocation).cookies(cookies)
                                        .ignoreContentType(true).execute();

// output here
FileOutputStream out = (new FileOutputStream(new java.io.File(outputFolder + name)));
out.write(resultImageResponse.bodyAsBytes());  // resultImageResponse.body() is where the image's contents are.
out.close();
Run Code Online (Sandbox Code Playgroud)

  • 说明:图像是二进制数据,而不是字符数据.`Response#body()`返回一个`String`,你应该检索原始字节数组.另外,使用`Writer`将字节转换为字符,你应该坚持`OutputStream`. (3认同)