OkHttpClient okHttpClient = new OkHttpClient();
// 定义一个request
Request request = new Request.Builder()
.url(url).addHeader("Referer","http://photo.yupoo.com/")
.build();
try {
// 执行请求
Response response = okHttpClient.newCall(request).execute();
// 打印最终响应的地址
String realUrl = response.request().url().toString();
System.out.println("最终响应地址:" + realUrl);
// 打印状态码
int code = response.code();
System.out.println("状态码:" + code);
} catch (IOException e) {
// 抓取异常
System.out.println("request " + url + " error . ");
e.printStackTrace();
}
:::info Referer为与图片服务器相同的域名 :::
public static void main(String[] args) {
String url = "http://photo.yupoo.com/vibius/GkRSowXr/medish.jpg";
ImageAsker asker = new ImageAsker();
asker.getContent(url);
}
何为Referer因为浏览器在请求网页中的图片(或其它任何文件)时,会自动在HTTP消息头Headers中,加一个Referer信息,表示请求的来源(或者可以理解为图片的上级是网页)。需要强调的是,Referer表示上级页面、来源页面,不设置表示页面或图片放在浏览器中直接打开,程序中可以不设置。