使用HttpClient訪問網絡數據,這裏就需要我們在阿帕奇官網下載他們的jar包,操作如下:
一、進入阿帕奇的官網 apache.org
二、進入阿帕奇的官網 首頁,拉到最低,找到下圖指的參數,點擊進入
三、左邊有下載提示,點擊下載
四、下載我下圖所指即可
五,解壓我們下載好的項目包,裏面有個lib文件夾,把裏面的jar文件複製到我們項目中即可
六、代碼中如何使用
使用get請求數據
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
public class HttpClientget {
public static void main(String[] args) {
new MyPostThread().start();
}
static class MyPostThread extends Thread{
HttpClient tClient = HttpClients.createDefault();
@Override
public void run() {
try {
HttpGet hget = new HttpGet("http://fanyi.youdao.com/openapi.do?keyfrom=Xiaobaid&key=329647385&type=data&doctype=json&version=1.1&q=welcom");
HttpResponse hR = tClient.execute(hget);
HttpEntity hEntity = hR.getEntity();
String vulueString = EntityUtils.toString(hEntity, "UTF-8");
System.out.println(vulueString.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
運行結果:
2、使用post請求方式請求數據
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.FileOutputStream
import java.io.InputStream
import java.io.InputStreamReader
import java.io.OutputStream
import java.io.OutputStreamWriter
import java.net.HttpURLConnection
import java.net.URL
import java.util.ArrayList
import java.util.List
import org.apache.http.HttpEntity
import org.apache.http.HttpResponse
import org.apache.http.client.HttpClient
import org.apache.http.client.entity.UrlEncodedFormEntity
import org.apache.http.client.methods.HttpGet
import org.apache.http.client.methods.HttpPost
import org.apache.http.impl.client.HttpClients
import org.apache.http.message.BasicNameValuePair
import org.apache.http.util.EntityUtils
public class HttpClientpost {
public static void main(String[] args) {
new MyPostThread().start()
}
static class MyPostThread extends Thread{
String url = "http://fanyi.youdao.com/openapi.do"
//創建一個HttpClient對象
HttpClient httpClient = HttpClients.createDefault()
@Override
public void run() {
HttpPost tClient = new HttpPost(url)
// 這裏就需要指定參數的數據了。我用的是我之前在有道註冊的一個連接
try {
//創建一個list,把後面6個參數分別以kye-value方式寫入
List<BasicNameValuePair> basicNameValuePairs = new ArrayList<>()
basicNameValuePairs.add(new BasicNameValuePair("keyfrom", "Xiaobaid"))
basicNameValuePairs.add(new BasicNameValuePair("key", "329647385"))
basicNameValuePairs.add(new BasicNameValuePair("type", "data"))
basicNameValuePairs.add(new BasicNameValuePair("doctype", "json"))
basicNameValuePairs.add(new BasicNameValuePair("version", "1.1"))
basicNameValuePairs.add(new BasicNameValuePair("q", "welcom"))
tClient.setEntity(new UrlEncodedFormEntity(basicNameValuePairs, "UTF-8"))
HttpResponse hR = httpClient.execute(tClient)
HttpEntity hEntity = hR.getEntity()
//返回的數據是String類型
String vulueString = EntityUtils.toString(hEntity, "UTF-8")
System.out.println(vulueString.toString())
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
}
}
}
運行結果: