• 使用 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>

  • 相关阅读:
    MySql中引擎
    Session和Cookie的区别和联系
    Global Round 2
    CF550 DIV3
    Java的反射机制
    IO多路复用
    简单DP内容
    Java 对象的创建以及类加载
    Java 一些常见问题(持续更新)
    红黑树的一些知识点
  • 原文地址:https://www.cnblogs.com/curedfisher/p/11970811.html
Copyright © 2020-2023  润新知