Java禁止的代码错误,但浏览器错误(2)
下面的代码下载具有指定url的图像。但我得到一些网址403错误 根据这一点,我尝试使用setRequestProperty(),但问题仍然没有解决。我无法找出我犯的错误,或者还有什么需要添加到代码中的吗Java禁止的代码错误,但浏览器错误(2),java,httpurlconnection,http-status-code-403,Java,Httpurlconnection,Http Status Code 403,下面的代码下载具有指定url的图像。但我得到一些网址403错误 根据这一点,我尝试使用setRequestProperty(),但问题仍然没有解决。我无法找出我犯的错误,或者还有什么需要添加到代码中的吗 import java.io.*; import java.net.URL; import java.net.MalformedURLException; import java.net.URLConnection; import java.net.HttpURLConnection; cla
import java.io.*;
import java.net.URL;
import java.net.MalformedURLException;
import java.net.URLConnection;
import java.net.HttpURLConnection;
class Crawler{
public static void main(String args[]){
String address = "http://szcdn1.raagalahari.com/dec2016/hd/anupama-parameswaran-premam-hd-photos/anupama-parameswaran-premam-hd-photos294.jpg";
Connection connection1 = new Connection();
connection1.connector(address);
}
}
class Connection{
void connector(String s){
try{
URL url = new URL(s);
URLConnection uc = url.openConnection();
HttpURLConnection http_connection = (HttpURLConnection) uc;
http_connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36");
http_connection.connect();
ImageDownload downloader = new ImageDownload();
downloader.download(url);
}catch(Exception e) {
System.out.println(e);
}
}
}
class ImageDownload{
void download(URL u){
try
{
InputStream in = new BufferedInputStream(u.openStream());
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buf = new byte[1024];
int n = 0;
while (-1!=(n=in.read(buf))){
out.write(buf, 0, n);
}
out.close();
in.close();
byte[] response = out.toByteArray();
FileOutputStream fos = new FileOutputStream("C://3.jpg");
fos.write(response);
fos.close();
} catch(IOException e){
System.out.println(e);
}
}
}
如果问题重复,请提前道歉。请帮忙 403错误几乎总是由您试图访问您无权访问的内容的问题引起的 试着用这个
http_connection.setRequestProperty("http-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");
download()方法使用Java的默认连接参数,使用URL.openStream()从头开始打开连接。您准备的http_连接没有任何效果,因为您的代码在执行此工作的download()方法中没有使用它
因此,您应该将http_连接传递到download()方法中,而不是URL,并使用其getInputStream()方法而不是URL.openStream()。然后您将看到请求属性的效果。所以我做了以下更改:1下载(http_连接)'2'。无效下载(httpurl连接)'3'InputStream in=u.getInputStream();'但这给了我同样的错误:服务器返回HTTP响应代码:403