使用HttpClient访问网路数据

来源:互联网 发布:澳门网络娱乐nb88.com 编辑:程序博客网 时间:2024/06/05 23:56

使用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();            }        }    }}

运行结果:

这里写图片描述

0 0
原创粉丝点击