zoukankan      html  css  js  c++  java
  • 使用Get进行Http通信

    --------------siwuxie095

       

       

       

       

       

       

       

    有道翻译官网:http://fanyi.youdao.com/

       

    找到官网页面下方的 有道翻译API,选择 调用数据接口,申请一个 key

       

    (申请内容可随意填写)

       

       

       

       

       

    申请成功:

       

       

       

       

       

    自动生成一个对应的数据接口:http://fanyi.youdao.com/openapi.do?keyfrom=siwuxie095-test&key=2140200403&type=data&doctype=<doctype>&version=1.1&q=要翻译的文本

       

    需要指定 <doctype>要翻译的文本

       

       

       

       

       

    关于 API 的说明:

       

       

       

       

       

       

       

    工程名:TestHttpGet

    包名:com.siwuxie095.http

    类名:TestGet.java

       

       

       

    工程结构目录如下:

       

       

       

       

    代码:

       

    package com.siwuxie095.http;

       

    import java.io.BufferedReader;

    import java.io.IOException;

    import java.io.InputStream;

    import java.io.InputStreamReader;

    import java.net.MalformedURLException;

    import java.net.URL;

    import java.net.URLConnection;

       

    public class TestGet {

       

    public static void main(String[] args) {

       

    //调用线程 ReadByGet,使用匿名对象

    new ReadByGet().start();

    }

    //创建一个新的线程,这是一个内部的类,继承自 Thread

    //因为要在主方法(静态)中调用,所以要声明成静态

    //不加 static 也可以,需要把 ReadByGet 移出 TestGet,不过这时就不是内部类了

    static class ReadByGet extends Thread{

    //覆盖父类的run()方法

    @Override

    public void run() {

    //创建一个URL对象,注意:是 java.net 包中的

    //url 即网络路径,传入String

    //(当在整个链接中使用回车时,链接自动断开,形成多个字符串)

    //指定doctype类型为:XML,翻译:welcome

    //doctype 还可以指定为 json jsonp

    //最终返回结果的数据格式是 XML 类型

    //有异常抛出,用 try catch 捕获

    try {

    URL url=new URL("http://fanyi.youdao.com/openapi.do?"

    + "keyfrom=siwuxie095-test&key=2140200403&type=data"

    + "&doctype=xml&version=1.1&q=welcome");

    //使用openConnection()方法打开链接

    //返回值是URLConnection类型,创建以接收返回值

    //同样是 java.net 包中的类

    //有异常抛出,用 try catch 捕获

    URLConnection connection=url.openConnection();

    //获取网络连接输入流,返回值是InputStream类型

    //创建一个InputStream,接收返回值

    InputStream is=connection.getInputStream();

    //创建一个InputStreamReader,包装InputStream

    //如果读取的数据有乱码,在字节流包装成字符流时可以指定编码

    InputStreamReader isr=new InputStreamReader(is,"UTF-8");

    //InputStreamReader isr=new InputStreamReader(is);

    //创建一个BufferedReader,包装InputStreamReader

    BufferedReader br=new BufferedReader(isr);

    //包装完成,将数据全部读取

    String line;

    StringBuilder builder=new StringBuilder();

    //当读取的一行数据不为空,则当前内容没有结束,添加到StringBuilder

    while ((line=br.readLine())!=null) {

    builder.append(line);

    }

    //读取完毕,关闭输入流,后打开的先关闭

    br.close();

    isr.close();

    is.close();

    //打印StringBuilder中的所有数据

    System.out.println(builder.toString());

    } catch (MalformedURLException e) {

    e.printStackTrace();

    } catch (IOException e) {

    e.printStackTrace();

    }

    }

    }

       

    }

       

       

    运行一览:

       

       

       

       

    将输出的 XML 数据,复制->粘贴->格式化:

       

       

       

       

       

       

       

    【made by siwuxie095】

  • 相关阅读:
    【Spring源码解读】bean标签中的属性(二)你可能还不够了解的 abstract 属性和 parent 属性
    【效率工具】史上最好用的SSH一键登录脚本,第三版更新!
    WebGL简易教程——目录
    写技术博客的一些心得体会
    空间直线与球面相交算法
    three.js中帧缓存的使用
    curl使用小记(二)——远程下载一张图片
    curl使用小记(一)
    three.js中场景模糊、纹理失真的问题
    关于three.js中的矩阵更新
  • 原文地址:https://www.cnblogs.com/siwuxie095/p/6649711.html
Copyright © 2011-2022 走看看