• 使用 Http 的 Post 方式与网络交互通信


    1.项目截图

     2.TestPost.java

    package testhttppost;

    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.io.OutputStreamWriter;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;

    /**
    * 测试http--post访问
    * @author xjj13
    *
    */
    public class TestPost {
    public static void main(String[] args) {
    new ReadByPost().start();
    }
    }

    class ReadByPost extends Thread{
    @Override
    public void run() {
    try {

    URL url=new URL("http://fanyi.youdao.com/openapi.do");
    //打开互联网的连接
    HttpURLConnection connection=(HttpURLConnection) url.openConnection();
    //为connection设置参数
    //设定编码为utf-8
    connection.addRequestProperty("encoding","UTF-8");
    //设置为true后,当前的connection就可以从网络获取数据
    connection.setDoInput(true);
    //如果要向服务器传输数据的话,要将服务器setDoOutPut(true)
    connection.setDoOutput(true);
    //设定当前connection的访问方式设置为post
    //注意不能在它有任何连接之后设定为POST
    connection.setRequestMethod("POST");

    //post需要先向浏览器发送数据
    //获取输出流,并进行包装
    OutputStream os=connection.getOutputStream();
    OutputStreamWriter osw=new OutputStreamWriter(os);
    BufferedWriter bw=new BufferedWriter(osw);


    //对服务器输出
    bw.write("keyfrom=JKXY-test&keyfrom=JKXY-test&key=343166845&type=data&doctype=xml&version=1.1&q=welcome");
    //强制输出
    bw.flush();

    //获取输入流,并进行包装
    InputStream is=connection.getInputStream();
    InputStreamReader isr=new InputStreamReader(is);
    BufferedReader br=new BufferedReader(isr);

    //读取
    String line;
    StringBuilder builder=new StringBuilder();
    while ((line=br.readLine())!=null) {
    builder.append(line);
    }//当while结束之后,说明文件读取结束

    //关闭流
    bw.close();
    osw.close();
    os.close();
    br.close();
    isr.close();
    is.close();

    //输出
    System.out.println(builder.toString());

    } catch (MalformedURLException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }

    3.console输出台截图

     test.xml

    <?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>

  • 相关阅读:
    httpclient5:信任所有证书,调用公众号接口
    驾驶技能考试系统:常见故障原因分析及排除
    C#:Combox实现key,value
    C#:密码框的两种方式
    C#:动态添加或删除控件,并根据控件名称获得控件
    微服务设计模式
    微服务设计模式
    微服务设计模式
    微服务设计模式
    微服务设计模式
  • 原文地址:https://www.cnblogs.com/curedfisher/p/11969222.html
Copyright © 2020-2023  润新知