使用HttpClient进行Post通信
---------------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 //运行线程:Post,使用匿名对象 new Post().start(); } } class Post extends Thread{
//创建一个HttpClient,使用静态方法调用类HttpClients的reateDefault() //获取一个新的实例 HttpClient client=HttpClients.createDefault();
//复写run() @Override public
//准备一个网络读写的接口: //(来自于有道翻译的在线翻译接口,让其翻译: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通信的更多相关文章
- Android中使用HttpClient实现HTTP通信效果
HTTP通信,这一案例在操作的时候遇到N多种种问题,是前面看过几个实例里面最麻烦的一个.由于没有系统的接触过JAVA,所以出了非常多错误,也无从下手解决,这里经过对错误的检索实现了HTTP通信,以做记 ...
- 使用HttpClient进行Get通信
--------------siwuxie095 首先到 Apache官网 下载相关的库文件 Apache官网:http://www.a ...
- Android之实战篇(三)
先给出我们用到的工具类 1.发送请求的工具类 本实例采用HttpClient与服务器通信,用到了一个工具类对Httpclient进行封装:定义了两个方法来发送请求 getRequest:发送GET请求 ...
- [android] android项目架构
准备步骤: 1.创建工程(设置版本兼容,最低兼容版本) 2.导入常用jar包,(处理字符串和加密用的jar文件) Commons Lang,Commons Codec commons-codec.ja ...
- Android使用ImageView显示网络图片
本案例使用ImageView 简单的实现了网络图片的调用.当中注意事项.由于用到了网络,这里採用了HttpClient方法訪问网络联接,关于怎样使用,可參照文章 Android中使用HttpClien ...
- 7.20实习培训日志-Java基础程序设计结构
Java基础程序设计结构 在 Math 类中,为了达到最快的性能,所有的方法都使用计算机浮点单元中的例程,如果得到一个完全可预测的结果比运行速度更重要的话,那么就应该使用StrictMath类,它使用 ...
- Windows 10开发基础——网络编程
主要内容: HttpClient类 Socket通信 WCF通信 HttpClient类 在UWP中可以用来进行网络通信的HttpClient类有两个,System.Net.Http.Htt ...
- bugzilla4的xmlrpc接口api调用实现分享: xmlrpc + https + cookies + httpclient +bugzilla + java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能
xmlrpc . https . cookies . httpclient.bugzilla . java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能,网上针对bugzilla的实现很 ...
- 重新想象 Windows 8.1 Store Apps (88) - 通信的新特性: 新的 HttpClient
[源码下载] 重新想象 Windows 8.1 Store Apps (88) - 通信的新特性: 新的 HttpClient 作者:webabcd 介绍重新想象 Windows 8.1 Store ...
随机推荐
- MinGW main()
MinGW没有wmain入口函数,为了获取宽字符的参数,可以用系统API函数GetCommandLineW. main.cpp #include <iostream> #include & ...
- json与NSString转换
json to string NSData *jsonData = [NSJSONSerialization dataWithJSONObject:json options:NSJSONWriting ...
- 计算客网络赛 Coin 二项式定理+逆元
https://nanti.jisuanke.com/t/17115 Bob has a not even coin, every time he tosses the coin, the proba ...
- vue项目打包注意的地方
打包有两种方式: 第一种方式:1.更改config文件夹下prod.env.js下的地址: 2.将config文件夹下index.js中build下改为 assetsPublicPath: '', 第 ...
- 【Window Service】关于Window Service的两三事
引言 Window Service通常用于寄宿WCF服务或者定时作业.下面记录一下它的用法. 创建 创建Window Service项目后,可以看到Program和Service1类.Program ...
- AOP注解式拦截
1. 自己定义的拦截注解 package com.spring.aop; import java.lang.annotation.Documented; import java.lang.annota ...
- @angular/cli项目构建--interceptor
JWTInterceptor import {Injectable} from '@angular/core'; import {HttpEvent, HttpHandler, HttpInterce ...
- Codeforces Round #253 (Div. 2)B(暴力枚举)
就暴力枚举所有起点和终点就行了. 我做这题时想的太多了,最简单的暴力枚举起始点却没想到...应该先想最简单的方法,层层深入. #include<iostream> #include< ...
- JQuery 提供了两种方式来阻止事件冒泡。
JQuery 提供了两种方式来阻止事件冒泡. 方式一:event.stopPropagation(); $("#div1").mousedown(function(event){ ...
- 安装Windows系统指南
安装系统指南 WIN10PE内核与WIN8PE内核区别: Win10PE内核支持NVME(M.2)新硬盘,WIN8PE不支持NVME. 但是WIN8PE对老机器的适配更好一些,其他功能均一致. 多一个 ...