OkHttpClient okHttpClient = new OkHttpClient();// 定义一个requestRequest 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表示上级页面、来源页面,不设置表示页面或图片放在浏览器中直接打开,程序中可以不设置。
