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 方式通信的更多相关文章

  1. 使用HttpClient进行Get方式通信

    下载apache包 http://hc.apache.org/downloads.cgi 比较eclipse自带api,简单,易上手 实例: package zw1; import java.io.I ...

  2. 使用HttpClient进行Get方式通信(使用HttpGet获取网页数据)

    1.项目结构 导入jar包 jar包去官网下载解压后项目新建lib目录,将解压包中的lib目录中的zip拷入项目lib目录文件夹,然后build path-->配置到项目中 2.TestGet. ...

  3. Asp.Net Core中HttpClient的使用方式

    在.Net Core应用开发中,调用第三方接口也是常有的事情,HttpClient使用人数.使用频率算是最高的一种了,在.Net Core中,HttpClient的使用方式随着版本的升级也发生了一些变 ...

  4. 07_android入门_採用HttpClient的POST方式、GET方式分别实现登陆案例

    1.简单介绍 HttpClient 是 Apache Jakarta Common 下的子项目,能够用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,而且它支持 HTTP 协议 ...

  5. HttpClient使用GET方式通过代理服务器读取页面的例子

    import java.io.BufferedReader;import java.io.InputStreamReader;import org.apache.http.HttpEntity;imp ...

  6. HttpClient Get/Post方式调用Http接口

    本节摘要:本节主要分别介绍如何用get方式.post方式向http接口发送数据. preparation 1. 项目环境如下: myeclipse6.5 .tomcat5.0.system:xp.JD ...

  7. 本地Git与GitHub服务器建立连接(SSH方式通信)

    简介 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要 ...

  8. HttpClient通过Post方式发送Json数据

    服务器用的是Springmvc,接口内容: @ResponseBody @RequestMapping(value="/order",method=RequestMethod.PO ...

  9. JAVA MQ API方式通信采用Binding MQ Server方式

    package com.mqapi;   /**  * @modified by actorai E-mail:actorai@163.com  * @version 创建时间:2010-9-15 * ...

随机推荐

  1. day40——数据库、数据库分类、安装、修改密码、字符集编码、简单语句介绍

    day40 详情请看:https://www.cnblogs.com/clschao/articles/9907529.html 数据库 数据库 简而言之可视为电子化的文件柜--存储电子文件的处所,用 ...

  2. gentoo emerge简单用法

    包管理工具 包的命名 gentoo中每个包名包含两部分,组名与包名,如:dev-db/redis,dev-db是组名,redis是包名或者称库名. 安装搜索时需要指定包的名称,一般不需要输入组名, 但 ...

  3. 【LEETCODE】56、数组分类,适中级别,题目:62、63、1035

    package y2019.Algorithm.array.medium; /** * @ClassName UniquePathsWithObstacles * @Description TODO ...

  4. golang ---获取内存信息

    package main import ( "fmt" "syscall" "unsafe" ) var kernel = syscall. ...

  5. YII 的SPA 写法

    'use strict'; var findToolbar = function () { return document.querySelector('#yii-debug-toolbar'); } ...

  6. vue标签内循环数据逗号分隔

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

  7. Qt 接受拖放

    第一步:在构造函数里面 添加拖放支持,相当于总开关(注意这里设置之后是整个窗口可以接受拖放) setAcceptDrops(true); 第二步:重写接受拖放相关的虚函数 void dragEnter ...

  8. day31-python之内置函数

    1.udp多线程 import socketserver class MyServer(socketserver.BaseRequestHandler): def handle(self): prin ...

  9. android RecyclerView的Linear布局案例

    1.先创建 activity_recycle_view.xml 和 activity_recycler_linear_item.xml 如下: <?xml version="1.0&q ...

  10. python进程不能并行的原因,进程阻塞

    上图红色框的写法进程会阻塞,并不能实现多进程.这种写法不需要调用start方法也会执行. 注意:正常写法是上图红框下面的代码,即可实现多进程.