gpt4 book ai didi

java - 从 java.Server 中的 Url 下载图像返回 HTTP 响应代码 : 403 error. 如何使连接正常工作?

转载 作者:行者123 更新时间:2023-12-01 11:32:45 24 4
gpt4 key购买 nike

我正在尝试从某个网址下载图片,但无法这样做,因为我必须以某种方式向网站提供正确的用户客户端。我确信问题是我在使用 Url 类时无法提供用户客户端,因为该页面可以通过浏览器访问。我尝试使用代理和 Urlconnection 但无法使其工作。请分享您对此事的看法!

我的代码如下:

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.Proxy;
import java.net.SocketAddress;
import java.net.URL;
import java.net.URLConnection;

import javax.imageio.ImageIO;

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.highgui.Highgui;

public class KepLetolto {

public static void main(String[] args) throws IOException {
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
File file = new File("tempjpeg");
SocketAddress address = new java.net.InetSocketAddress("xyz.com", 8080);

// Create an HTTP Proxy using the above SocketAddress.
Proxy proxy = new Proxy(Proxy.Type.HTTP, address);


URL url_kep =new URL("http://www.theouthousers.com/images/templates/thumbnails/128058/bayfinger_size3.png");

ImageIO.write(ImageIO.read(url_kep), "jpeg", file);

Mat uj = Highgui.imread("temp.jpeg" ,Highgui.CV_LOAD_IMAGE_COLOR);

}

}

最佳答案

不要使用 ImageIO.read(URL),它会将您限制为 URL 底层 URLConnection 的默认行为,而应使用 ImageIO.read(InputStream) .

这允许您使用任何 HTTP 客户端库 - 包括基本的 HttpURLConnection ,您可以从 (HttpURLConnection)url_kep.openConnection() 获取。使用它,您可以设置诸如 User-Agent 之类的 header (如果这是网站所需的 header ),或者设置其他 header (例如 Referer),这些 header 有时用于防止深层攻击链接。

设置所有 header 和任何其他请求选项后,您可以从客户端对象获取 InputStream,并将其传递给 ImageIO

关于java - 从 java.Server 中的 Url 下载图像返回 HTTP 响应代码 : 403 error. 如何使连接正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30280539/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com