---------------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】

使用HttpClient进行Post通信的更多相关文章

  1. Android中使用HttpClient实现HTTP通信效果

    HTTP通信,这一案例在操作的时候遇到N多种种问题,是前面看过几个实例里面最麻烦的一个.由于没有系统的接触过JAVA,所以出了非常多错误,也无从下手解决,这里经过对错误的检索实现了HTTP通信,以做记 ...

  2. 使用HttpClient进行Get通信

    --------------siwuxie095                             首先到 Apache官网 下载相关的库文件     Apache官网:http://www.a ...

  3. Android之实战篇(三)

    先给出我们用到的工具类 1.发送请求的工具类 本实例采用HttpClient与服务器通信,用到了一个工具类对Httpclient进行封装:定义了两个方法来发送请求 getRequest:发送GET请求 ...

  4. [android] android项目架构

    准备步骤: 1.创建工程(设置版本兼容,最低兼容版本) 2.导入常用jar包,(处理字符串和加密用的jar文件) Commons Lang,Commons Codec commons-codec.ja ...

  5. Android使用ImageView显示网络图片

    本案例使用ImageView 简单的实现了网络图片的调用.当中注意事项.由于用到了网络,这里採用了HttpClient方法訪问网络联接,关于怎样使用,可參照文章 Android中使用HttpClien ...

  6. 7.20实习培训日志-Java基础程序设计结构

    Java基础程序设计结构 在 Math 类中,为了达到最快的性能,所有的方法都使用计算机浮点单元中的例程,如果得到一个完全可预测的结果比运行速度更重要的话,那么就应该使用StrictMath类,它使用 ...

  7. Windows 10开发基础——网络编程

    主要内容: HttpClient类 Socket通信 WCF通信 HttpClient类      在UWP中可以用来进行网络通信的HttpClient类有两个,System.Net.Http.Htt ...

  8. bugzilla4的xmlrpc接口api调用实现分享: xmlrpc + https + cookies + httpclient +bugzilla + java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能

    xmlrpc .  https . cookies . httpclient.bugzilla . java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能,网上针对bugzilla的实现很 ...

  9. 重新想象 Windows 8.1 Store Apps (88) - 通信的新特性: 新的 HttpClient

    [源码下载] 重新想象 Windows 8.1 Store Apps (88) - 通信的新特性: 新的 HttpClient 作者:webabcd 介绍重新想象 Windows 8.1 Store ...

随机推荐

  1. js抛物线

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. 转:STL迭代器失效问题

    . 对于关联容器(如map, set, multimap,multiset),删除当前的iterator,仅仅会使当前的iterator失效,只要在erase时,递增当前iterator即可.这是因为 ...

  3. [转]NYOJ-511-移动小球

    大学生程序代写 http://acm.nyist.net/JudgeOnline/problem.php?pid=511 这道题很容易想到要构建一个循环链表来确定每个球的相对位置,就是操作比较繁琐,考 ...

  4. Java进阶知识点3:更优雅地关闭资源 - try-with-resource及其异常抑制

    一.背景 我们知道,在Java编程过程中,如果打开了外部资源(文件.数据库连接.网络连接等),我们必须在这些外部资源使用完毕后,手动关闭它们.因为外部资源不由JVM管理,无法享用JVM的垃圾回收机制, ...

  5. JSON格式规范总结

    JSON有三类元素: 1.结构体(关键字:大括号)2.键值对(关键字:冒号)3.数组(关键字:中括号) 组织规则:结构体中放一个或者多个键值对.键只能是字符串.值可以是:字符串.数字.null.tru ...

  6. NOIP模拟题 斐波那契数列

    题目大意 给定长度为$n$序列$A$,将它划分成尽可能少的若干部分,使得任意部分内两两之和均不为斐波那契数列中的某一项. 题解 不难发现$2\times 10^9$之内的斐波那契数不超过$50$个 先 ...

  7. bzoj 4710 分特产

    有 $n$ 个人,$m$ 种物品,每种物品有 $a_i$ 个,求每个人至少分到一个的方案数 $n,m,a_i \leq 2000$ sol: 比上一个题简单一点 还是考虑容斥 每个人至少分到一个 = ...

  8. git常用命令备忘录

    返回未修改状态 [git checkout . --没有的提交的,都返回到原来的状态  git clean -xdf 删除文件和目录] git checkout . && git cl ...

  9. 查看.Net Framework版本号

    目录 摘要 .NET Framework 的版本 确定计算机上安装的 .NET Framework 版本 补充几个查看.Net Framework版本号 概要 本文描述如何确定计算机上安装的 Micr ...

  10. centos安装yum源

    网易(163)yum源是国内最好的yum源之一 ,无论是速度还是软件版本,都非常的不错,将yum源设置为163yum,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到.具体设置方法如下 ...