通过Java HTTP连接将网络图片下载到本地:http://www.javacui.com/java/61.html
那么如何使用java进行http请求,设置来路呢?
之前写过一篇文章,通过Java HTTP连接将网络图片下载到本地(http://www.javacui.com/java/61.html)。这里就不使用JDK里面直接的方式了,借助Apache的工具包来实现。
还是那个工程,编写请求方式:
package test;
import java.io.IOException;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.SimpleHttpConnectionManager;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpClientParams;
/**
* java無名
* 协议中设置来路
*/
public class SetHead {
public static void main(String[] args) throws HttpException, IOException {
String url = "http://localhost:8008/head/";
HttpClient client = new HttpClient(new HttpClientParams(), new SimpleHttpConnectionManager(true));
client.getHttpConnectionManager().getParams().setConnectionTimeout(15000); //通过网络与服务器建立连接的超时时间
client.getHttpConnectionManager().getParams().setSoTimeout(60000); //Socket读数据的超时时间,即从服务器获取响应数据需要等待的时间
GetMethod method = new GetMethod(url);
method.setRequestHeader("Content-Type", "text/html;charset=UTF-8"); // 防止乱码
method.setRequestHeader("Referer", "http://www.javacui.com"); // 设置来路
client.executeMethod(method);
String htmlString = method.getResponseBodyAsString();
System.out.println(htmlString);
}
}
获取到内容如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="http://localhost:8008/head/">
<title>检查来路</title>
</head>
<body>
<center>
<br><br><br><br>
来路:http://www.javacui.com
</center>
</body>
</html>
理解了原理,代码编写很简单。
lib.zip
需要的Apache包在上面。