使用 HttpClient 进行 Post 方式通信
1.TestPost.java
package testhttpclient;
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.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) {
//http://fanyi.youdao.com/openapi.do
//keyfrom=JKXY-test&key=343166845&type=data&doctype=xml&version=1.1&q=welcome
new Post().start();
}
}
class Post extends Thread{
//创建标准的httpClient
HttpClient client=HttpClients.createDefault();
@Override
public void run() {
HttpPost post=new HttpPost("http://fanyi.youdao.com/openapi.do");
try {
//keyfrom=JKXY-test&keyfrom=JKXY-test&key=343166845&type=data&doctype=xml&version=1.1&q=welcome
//BasicNameValuePair是存储键值对的类,当输入新的key和value值,一点添加,它会自动给装换成http的格式,=和&符号,我们都不用自己进行拼接和匹配了.
List<BasicNameValuePair> parameters=new ArrayList<>();
parameters.add(new BasicNameValuePair("keyfrom", "JKXY-test"));
parameters.add(new BasicNameValuePair("key", "343166845"));
parameters.add(new BasicNameValuePair("type", "data"));
parameters.add(new BasicNameValuePair("doctype", "xml"));
parameters.add(new BasicNameValuePair("version", "1.1"));
parameters.add(new BasicNameValuePair("q", "welcome"));
//传输给post请求
post.setEntity(new UrlEncodedFormEntity(parameters,"UTF-8"));
//执行
HttpResponse response=client.execute(post);
//http实例化对象
HttpEntity entity=response.getEntity();
String result=EntityUtils.toString(entity, "UTF-8");
System.out.println(result);
} catch (IOException e) {
e.printStackTrace();
}
}
}
2.运行截图

console控制台内容:
<?xml version="1.0" encoding="UTF-8"?>
<youdao-fanyi>
<errorCode>0</errorCode>
<query><![CDATA[welcome]]></query>
<!-- 有道翻译 -->
<translation>
<paragraph><![CDATA[欢迎]]></paragraph>
</translation>
<!-- 有道词典-基本词典 -->
<basic>
<!-- 音标 -->
<phonetic><![CDATA[ˈwelkəm]]></phonetic>
<!-- 美式音标 -->
<us-phonetic><![CDATA[ˈwelkəm]]></us-phonetic>
<!-- 英式音标 -->
<uk-phonetic><![CDATA[ˈwelkəm]]></uk-phonetic>
<!-- 基本释义 -->
<explains>
<ex><![CDATA[adj. 受欢迎的;令人愉快的;可随意的;尽管……好了]]></ex>
<ex><![CDATA[n. 欢迎;迎接;接受]]></ex>
<ex><![CDATA[v. 欢迎,迎接;迎新;乐于接受]]></ex>
<ex><![CDATA[int. 欢迎]]></ex>
<ex><![CDATA[n. (Welcome) (美、印)韦尔科姆(人名)]]></ex>
</explains>
</basic>
<!-- 有道词典-网络释义 -->
<web>
<explain>
<key><![CDATA[Welcome]]></key>
<value>
<ex><![CDATA[欢迎]]></ex>
<ex><![CDATA[受欢迎的]]></ex>
<ex><![CDATA[欢迎光临]]></ex>
</value>
</explain>
<explain>
<key><![CDATA[welcome to]]></key>
<value>
<ex><![CDATA[欢迎到来]]></ex>
<ex><![CDATA[欢迎参加]]></ex>
<ex><![CDATA[欢迎到]]></ex>
</value>
</explain>
<explain>
<key><![CDATA[Welcome aboard]]></key>
<value>
<ex><![CDATA[欢迎登机]]></ex>
<ex><![CDATA[欢迎加入]]></ex>
<ex><![CDATA[请上船]]></ex>
</value>
</explain>
</web>
</youdao-fanyi>
使用 HttpClient 进行 Post 方式通信的更多相关文章
- 使用HttpClient进行Get方式通信
下载apache包 http://hc.apache.org/downloads.cgi 比较eclipse自带api,简单,易上手 实例: package zw1; import java.io.I ...
- 使用HttpClient进行Get方式通信(使用HttpGet获取网页数据)
1.项目结构 导入jar包 jar包去官网下载解压后项目新建lib目录,将解压包中的lib目录中的zip拷入项目lib目录文件夹,然后build path-->配置到项目中 2.TestGet. ...
- Asp.Net Core中HttpClient的使用方式
在.Net Core应用开发中,调用第三方接口也是常有的事情,HttpClient使用人数.使用频率算是最高的一种了,在.Net Core中,HttpClient的使用方式随着版本的升级也发生了一些变 ...
- 07_android入门_採用HttpClient的POST方式、GET方式分别实现登陆案例
1.简单介绍 HttpClient 是 Apache Jakarta Common 下的子项目,能够用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,而且它支持 HTTP 协议 ...
- HttpClient使用GET方式通过代理服务器读取页面的例子
import java.io.BufferedReader;import java.io.InputStreamReader;import org.apache.http.HttpEntity;imp ...
- HttpClient Get/Post方式调用Http接口
本节摘要:本节主要分别介绍如何用get方式.post方式向http接口发送数据. preparation 1. 项目环境如下: myeclipse6.5 .tomcat5.0.system:xp.JD ...
- 本地Git与GitHub服务器建立连接(SSH方式通信)
简介 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要 ...
- HttpClient通过Post方式发送Json数据
服务器用的是Springmvc,接口内容: @ResponseBody @RequestMapping(value="/order",method=RequestMethod.PO ...
- JAVA MQ API方式通信采用Binding MQ Server方式
package com.mqapi; /** * @modified by actorai E-mail:actorai@163.com * @version 创建时间:2010-9-15 * ...
随机推荐
- 中国大学MOOC-翁恺-C语言程序设计习题集(二)
04-0. 求符合给定条件的整数集(15)给定不超过6的正整数A,考虑从A开始的连续4个数字.请输出所有由它们组成的无重复数字的3位数. 输入格式: 输入在一行中给出A. 输出格式: 输出满足条件的的 ...
- 【LEETCODE】54、数组分类,简单级别,题目:605、532
数组类,简单级别完结.... 不容易啊,基本都是靠百度答案.... 希望做过之后后面可以自己复习,自己学会这个解法 package y2019.Algorithm.array; /** * @Proj ...
- unbuntu 16.04 MS-Celeb-1M + alexnet + pytorch
最近被保研的事情搞的头大,拖了半天才勉强算结束这个了.从熟悉unbantu 16.04的环境(搭个翻墙的梯子都搞了一上午 呸!)到搭建python,pytorch环境.然后花了一个上午熟悉py的基本语 ...
- C#使用共享内存与C++进行数据交互
现在做桌面的不多了.前端太流行了,大家都去搞前端了. 需求如下: 上层UI使用C#开发,数据采集模块使用C++开发.数据采集模块采集到的数据比较大,上层需要接收这一块数据并显示 进程间通信的方式有多种 ...
- ADO.Net和SqlHelper封装
1.什么是ADO.Net 简单来讲,ADO.NET是用于和数据源打交道的.Net结束,是一组向.NET程序员公开数据访问服务的类 2.ADO.NET的组成部分和对象模型 (1)ADO.NET的两个 ...
- 前端开发 Angular
https://www.angularjs.net.cn/tutorial/18.html
- 【洛谷 P4254】 [JSOI2008]Blue Mary开公司(李超线段树)
题目链接 其实这东西很好懂的..用来维护一次函数. 每个结点存一个值,表示x=这个区间的mid时值最大的函数的编号. 把插入线段的斜率和当前结点的斜率和大小比较来更新左右儿子的值. 查询是实际上是查询 ...
- 【转载】Javascript使用Math.random()随机数函数生成1至1000的随机数
在Javascript代码编写过程中,有时候我们需要使用Js来生成随机数,清除ajax的get请求缓存的时候我们会带上一个随机数来解决此问题,此外在其他应用中也可能使用到随机数,在Javascript ...
- AutoMapper 初次使用心得
本例以asp.net webform为例: 结构: 主要代码:AutoMapperConfig 类 public class AutoMapperConfig { public static void ...
- robot framework笔记(二):在RF中自定义chrome启动参数
(一)在RF中自定义chrome启动参数 这里主要是实现下面2个功能 1.禁用chrome正受自动测试软件控制的提示 2.设置默认的下载路径(一些导出.下载类的功能,将文件下载到指定路径下) 自定义一 ...