想用java做http的接口自動化,首先使用了java.net下的http方法,BUG 網上好多人說httpClient比較牛,好處一堆,那我就選了httpClient
目前最簡單的就是使用get或者post發送簡單的請求獲取連接的狀態碼 獲取網頁信息
代碼如下:
package service.fyy.unit;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import sun.misc.IOUtils;
public class HttpClientTest {
public static void main(String[] args) throws Exception {
HttpClientTest test = new HttpClientTest();
test.sentGet("/");
}
public void sentGet(String url) throws Exception {
CloseableHttpClient httpclient = HttpClients.createDefault();
String result = "";
try {
HttpHost targetHost = new HttpHost("www.baidu.cn");
// 創建get連接
HttpGet httpget = new HttpGet(url);
// 設置超時時間
RequestConfig requestConfig = RequestConfig.custom()
.setSocketTimeout(2000).setConnectTimeout(1000 * 10)
.build();// 設置請求和傳輸超時時間
httpget.setConfig(requestConfig);
httpget.setHeader("Accept-Charset",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.2");
// 發送請求
CloseableHttpResponse response = httpclient.execute(targetHost,
httpget);
System.out.println("URI:" + httpget.getURI());
// 獲取狀態碼
System.out.println("狀態碼:"
+ response.getStatusLine().getStatusCode());
System.out.println("頭部信息:"
+ httpget.getFirstHeader("Accept-Charset").getValue());
// BufferedReader reader= new BufferedReader(new
// InputStreamReader(response.get));
// 獲取所有的請求頭信息
Header headers[] = response.getAllHeaders();
int ii = 0;
while (ii < headers.length) {
System.out.println(headers[ii].getName() + ":"
+ headers[ii].getValue());
++ii;
}
// 抓取網頁內容
HttpEntity entity = response.getEntity();
BufferedReader br = new BufferedReader(new InputStreamReader(
entity.getContent(), "UTF-8"));
String line;
while ((line = br.readLine()) != null) {
result += line;
}
br.close();
System.out.println("result:" + result);
// 終止請求
httpget.abort();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 終止請求
httpclient.close();
}
<span style="white-space:pre"> </span>//獲取URI
// System.out.println("getURI:" + httpget.getURI());
<span style="white-space:pre"> </span>//設置HTTPversion
// httpget.setProtocolVersion( new ProtocolVersion("HTTP", 1, 0));
<span style="white-space:pre"> </span>//得到HTTP version
// System.out
// .println("getProtocolVersion:" + httpget.getProtocolVersion());
<span style="white-space:pre"> </span>//設置URI
// httpget.setURI(new URI(url));
}
}
沒有整理格式,都是試驗的各種實現方法,還得再接再厲啊