---------------siwuxie095

 
 

 
 

 
 

 
 

 
 

 
 

首先到 Apache官网 下载相关的库文件

 
 

Apache官网:http://www.apache.org/

 
 

 
 

在官网页面的最下方是
Apache 所支持的所有项目列表(APACHE PROJECT LIST)

 
 

找到
HttpComponents,点击进入,选择 Download,下载

HttpClient 4.5.3(GA) 版本(截止 2017/3/31 最新 GA 版本)

 
 

页面链接:http://hc.apache.org/downloads.cgi

 
 

 
 

 
 

 
 

 
 

httpcomponents-client-4.5.3-bin.zip
解压后一览:

 
 

 
 

 
 

 
 

 
 

 
 

 
 

工程名:TestHttpClient

包名:com.siwuxie095.httpclient

类名:TestPost.java

 
 

 
 

 
 

打开资源管理器,在工程 TestHttpClient 文件夹下,创建一个

文件夹:lib,在其中放入:

(1)httpclient-4.5.3.jar

(2)httpcore-4.4.6.jar

(3)commons-logging-1.2.jar

 
 

 
 

工程结构目录一览:

 
 

 
 

 
 

 
 

全选这 3 个
jar 包(利用 Shift 全选),右键->Build Path->Add to Build Path

 
 

此时,工程结构目录一览:

 
 

 
 

 
 

 
 

 
 

代码:

 
 

package com.siwuxie095.httpclient;

 
 

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

 
 

import org.apache.http.HttpEntity;

import org.apache.http.HttpResponse;

import org.apache.http.client.ClientProtocolException;

import org.apache.http.client.HttpClient;

import org.apache.http.client.entity.UrlEncodedFormEntity;

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 TestPost {

 
 

public static
void main(String[] args) {

 
 

//运行线程:Post,使用匿名对象

new Post().start();

}

 
 

}

 
 

 
 

class Post extends Thread{

 

//创建一个HttpClient,使用静态方法调用类HttpClients的reateDefault()

//获取一个新的实例

HttpClient client=HttpClients.createDefault();

 

//复写run()

@Override

public
void run() {

 

//准备一个网络读写的接口:

//(来自于有道翻译的在线翻译接口,让其翻译:welcome)

//(1)http://fanyi.youdao.com/openapi.do

//(2)keyfrom=siwuxie095-test&key=2140200403&type=data

// &doctype=xml&version=1.1&q=welcome

 

//创建一个HttpPost,传入String:指定请求的URL

HttpPost post=new HttpPost("http://fanyi.youdao.com/openapi.do");

 

 

try {

 

//执行post之前,添加发送的数据

//通过Post方式向服务器发送参数:

//keyfrom=siwuxie095-test&key=2140200403&type=data

//&doctype=xml&version=1.1&q=welcome

//

//通过setEntity()方法添加发送的数据,

//传入一个新的Entity:new UrlEncodedFormEntity() 匿名对象

//给UrlEncodedFormEntity()传入一个List对象并指定字符集:UTF-8

//则需要创建一个List,类型为 BasicNameValuePair,实例化为ArrayList

//为List添加参数 add(),再传入新的BasicNameValuePair->键值对

List<BasicNameValuePair> list=new ArrayList<>();

list.add(new BasicNameValuePair("keyfrom", "siwuxie095-test"));

list.add(new BasicNameValuePair("key", "2140200403"));

list.add(new BasicNameValuePair("type", "data"));

list.add(new BasicNameValuePair("doctype", "xml"));

list.add(new BasicNameValuePair("version", "1.1"));

list.add(new BasicNameValuePair("q", "welcome"));

post.setEntity(new UrlEncodedFormEntity(list,"UTF-8"));

 

 

//让HttpClient执行post操作

//execute()返回HttpResponse类型,创建以接收返回值

//有异常抛出,使用 try catch 捕获

HttpResponse response=client.execute(post);

 

 

//从response中获取当前请求的结果

//getEntity()返回HttpEntity类型,创建以接收返回值

HttpEntity entity=response.getEntity();

 

 

//将entity返回成一个String类型

//调用类EntityUtils的静态方法toString(),

//传入entity的同时,指定转换为字符串时使用的编码

String result=EntityUtils.toString(entity, "UTF-8");

 

//打印结果,输出为 HTML 数据

System.out.println(result);

 

} catch (ClientProtocolException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

 

 

}

 

 

}

 
 

 
 

运行一览:

 
 

 
 

 
 

 
 

 
 

 
 

关于
有道翻译
API,详见本人博客的分类:来一杯Java,

里面的
使用Get进行Http通信 或 使用Post进行Http通信

 
 

 
 

本人博客(任选一个)链接:

https://www.baidu.com/s?ie=UTF-8&wd=siwuxie095

 
 

 
 

 
 

 
 

 
 

【made by siwuxie095】

最新文章

  1. 转,Oracle中关于处理小数点位数的几个函数,取小数位数,Oracle查询函数
  2. Dynamo分布式系统——「RWN」协议解决多备份数据如何读写来保证数据一致性,而「向量时钟」来保证当读取到多个备份数据的时候,如何判断哪些数据是最新的这种情况
  3. Entity Framework 5中应用表值函数进行Linq查询
  4. 自定义表单input
  5. c++函数模板---3
  6. List中toArray()的使用方法
  7. Android播放音频的两种方式
  8. NPOI之使用EXCEL模板创建报表
  9. 【Unity 3D】教程(1)建立场景
  10. go web 第三天 学习笔记 --mysql
  11. day-1 用python编写一个简易的FTP服务器
  12. Servlet总结二(文件路径)
  13. [转]impala操作hive数据实例
  14. C++的IO处理中的头文件以及类理解(2)&lt;sstream&gt;头文件
  15. tomcat 启动慢问题
  16. node.js 框架express关于报错页面的配置
  17. [转]qtcreator中常用快捷键总结
  18. vc++调用exe获取输出信息
  19. 浅谈tcp socket的backlog参数
  20. android 在HTML中显示bitmap

热门文章

  1. Educational Codeforces Round 33 (Rated for Div. 2)A-F
  2. 浅谈 C# CLR 执行模块
  3. LSTM与Highway-LSTM算法实现的研究概述
  4. nyoj-67-三角形面积(S=(1/2)*(x1y2+x2y3+x3y1-x1y3-x2y1-x3y2))
  5. POJ--1094--Sorting It All Out||NYOJ--349--Sorting It All Out(拓扑排序)
  6. L115
  7. SVN管理多个项目版本库 (windows,linux 通用)
  8. Reinforcement Learning Q-learning 算法学习-2
  9. CodeForces - 682E: Alyona and Triangles(旋转卡壳求最大三角形)
  10. 非maven项目下载maven的jar