使用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 ...
随机推荐
- sgu176 有源汇上下界最小流
题意:有一堆点和边,1起点,n终点,某些边有可能必须满流,要求满足条件的最小流 解法:按原图建边,满流的即上下界都是容量,但是这样按有源汇上下界可行流求出来的可能不是最小流,那么我们需要开始建边的时候 ...
- Java 反射机制应用实践
反射基础 p.s: 本文需要读者对反射机制的API有一定程度的了解,如果之前没有接触过的话,建议先看一下官方文档的Quick Start(https://docs.oracle.com/javase/ ...
- ural 2017 Best of a bad lot
2017. Best of a bad lot Time limit: 1.0 secondMemory limit: 64 MB A cruise liner hasn’t moved away f ...
- 51nod 1686 二分+离散化
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1686 1686 第K大区间 基准时间限制:1 秒 空间限制:131072 ...
- 条款35:考虑virtual函数以外的其他选择
有一部分人总是主张virtual函数几乎总应该是private:例如下面这个例子,例子时候游戏,游戏里面的任务都拥有健康值这一属性: class GameCharacter{ public: int ...
- uva11997 K Smallest Sums&&UVALive 3135 Argus(优先队列,多路归并)
#include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #inc ...
- InnoDB参数详解
1.查询5.5版本的InnoDB参数并注释:[root@localhost etc]# grep -i innodb my.cnf; t_innodb; otherwise, slaves may d ...
- 使用PHP配置文件
/**************************************************************************************** * 使用PHP配置文 ...
- spark 单机版安装
jdk-8u73-linux-x64.tar.gz hadoop-2.6.0.tar.gz scala-2.10.6.tgz spark-1.6.0-bin-hadoop2.6.tgz 1.安装jdk ...
- mongodb所在目录空间不足解决方法
1.原理是将目录/home/aa软连接到/usr/lib/下,以后从/usr/lib下读取的内容其实都是放在/home/aa下. 建议不要大范围动/usr下的内容,咋着也是属于系统目录,可能会对已装软 ...