使用HttpClient訪問網路數據

使用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對象
        HttpClient tClient = HttpClients.createDefault();

        @Override
        public void run() {
            // 使用apache(阿帕奇)的httpclient來獲取網絡數據
            try {
                //使用HttpGet()來關聯我們服務器的網址,這裏我用百度,http:\\要加上
                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類型
                String vulueString = EntityUtils.toString(hEntity, "UTF-8");
                System.out.println(vulueString.toString());
            } catch (Exception e) {
                // TODO Auto-generated catch block
                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();
            }
        }
    }
}

運行結果:

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章