HTTP编程
http编程:Java.net包
URL代表一个资源。
网址 = 协议 + 域名 + 资源文件 + 参数。
URLConnetion:
- 获取资源的连接,创建URL对象。
- 通过URL的openConnections方法获得URLConnection。
- connect方法:建立连接。
- getInputStream方法,获取资源内容。
例子:
使用URLconnection获取网页数据。
package URLConnection;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
public class URLConnectionGetTest {
public static void main(String[] args) {
try {
String str = "https://www.baidu.com";
URL url = new URL(str);
URLConnection connection = url.openConnection();
connection.connect();
BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "utf-8"));
String line = "";
while((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
}catch(IOException e) {
e.printStackTrace();
}
}
}
HttpComponents
是一个集成的Java Http工具。实现所有的Http方法。
例子:
使用HttpComponent获取网页数据:
- 创建HttpClient对象。
- 设置一些请求的要求 RequestConfig。
- 创建获取网页的对象,getHttp,并加入配置信息。
- 执行,execute,获取数据请求。
- 若获取成功,输出结果。
package HttpClient;
import java.io.IOException;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class HttpComponents {
public static void main(String[] args) throws ClientProtocolException, IOException {
CloseableHttpClient httpClient = HttpClients.createDefault();
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(5000)
.setConnectionRequestTimeout(5000)
.setSocketTimeout(5000)
.setRedirectsEnabled(true)
.build();
HttpGet httpGet = new HttpGet("http://www.baidu.com");
httpGet.setConfig(requestConfig);
String str = "";
HttpResponse httpResponse = httpClient.execute(httpGet);
if(httpResponse.getStatusLine().getStatusCode() == 200) {
str = EntityUtils.toString(httpResponse.getEntity(), "utf-8");
System.out.println(str);
httpClient.close();
}
}
}