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

使用Get进行Http通信的更多相关文章

  1. 理解加密算法(三)——创建CA机构,签发证书并开始TLS通信

    接理解加密算法(一)--加密算法分类.理解加密算法(二)--TLS/SSL 1 不安全的TCP通信 普通的TCP通信数据是明文传输的,所以存在数据泄露和被篡改的风险,我们可以写一段测试代码试验一下. ...

  2. 笔记:Binder通信机制

    TODO: 待修正 Binder简介 Binder是android系统中实现的一种高效的IPC机制,平常接触到的各种XxxManager,以及绑定Service时都在使用它进行跨进程操作. 它的实现基 ...

  3. .NET 串口通信

    这段时间做了一个和硬件设备通信的小项目,涉及到扫描头.输送线.称重机.贴标机等硬件.和各设备之间通信使用的是串口或网络(Socket)的方式.扫描头和贴标机使用的网络通信,输送线和称重机使用的是串口通 ...

  4. MVVM模式解析和在WPF中的实现(五)View和ViewModel的通信

    MVVM模式解析和在WPF中的实现(五) View和ViewModel的通信 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 M ...

  5. 多线程的通信和同步(Java并发编程的艺术--笔记)

    1. 线程间的通信机制 线程之间通信机制有两种: 共享内存.消息传递.   2. Java并发 Java的并发采用的是共享内存模型,Java线程之间的通信总是隐式执行,通信的过程对于程序员来说是完全透 ...

  6. 搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 (1)

    搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 原文地址(英文):http://www.networkcomms.net/creating ...

  7. 高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.1.1

    HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/ ...

  8. TCP通信

    //网络套接字编程实例,服务器端,TCP通信. #include <WinSock2.h> #pragma comment(lib,"ws2_32.lib") #inc ...

  9. JAVA通信系列一:Java Socket技术总结

    本文是学习java Socket整理的资料,供参考. 1       Socket通信原理 1.1     ISO七层模型 1.2     TCP/IP五层模型 应用层相当于OSI中的会话层,表示层, ...

  10. ucos实时操作系统学习笔记——任务间通信(消息)

    ucos另一种任务间通信的机制是消息(mbox),个人感觉是它是queue中只有一个信息的特殊情况,从代码中可以很清楚的看到,因为之前有关于queue的学习笔记,所以一并讲一下mbox.为什么有了qu ...

随机推荐

  1. zoj3229 有源汇上下界最大流

    题意:有一个人每天给妹子拍照,每个妹子有最少拍照数,每天有最大拍照数,每天只能给某些特定的妹子拍照,求最大拍照数 题解:很容易看出来的有源汇上下界最大流,对于有源汇 的上下界最大流,我们按照无源汇的操 ...

  2. poj 1324 状态压缩+bfs

    http://poj.org/problem?id=1324 Holedox Moving Time Limit: 5000MS   Memory Limit: 65536K Total Submis ...

  3. uva 10453 dp/LCS变形

    https://vjudge.net/problem/UVA-10453 给出一个字符串,问最少添加几个字符使其变为回文串,并输出任意一种答案.就是一个类似于LCS的题目,而且简化了一下,只会出现三种 ...

  4. Python学习之路day3-函数

    一.函数基础 编程方法典型的编程方法有面向过程.面向对象和函数式编程.面向过程是把编程的重点放在实现过程上,分析出结局问题所需的步骤过程,然后通过语句来一一定义实现.面向对象是把构成问题的事务分界成若 ...

  5. LINUX下SYN FLOOD攻击及LINUX下SYN攻防简述

    LINUX下SYN攻防战如下 (一)SYN攻击原理 SYN攻击属于DOS攻击的一种,它利用TCP协议缺陷,通过发送大量的半连接请求,耗费服务器CPU和内存资源.SYN攻击聊了能影响主机外,还可以危害路 ...

  6. 简单常用sql查询

    [self.db executeUpdate:sql, record.recordID]; CREATE TABLE scene_record(id TEXT PRIMARY KEY, record_ ...

  7. spring学习-2

    Spring_属性配置细节 1.若字面值包含特殊字符,可以使用<[CDATA[]]>把字面值包裹起来 例:<value><![CDATA[<3333>^]]& ...

  8. DedeCMS织梦模板标签调用大全

    本文转载:http://www.mubanzhijia.com/jishujiaocheng/1.html 关键描述调用标签: <meta name="keywords" c ...

  9. Tomcat的安装与环境配置

    首先,下载地址为:http://tomcat.apache.org/,在左侧的列表中找到Download,找到自己要下载的Tomcat的版本.我下载的是Tomcat 7. 进入后出现如上右图界面.我选 ...

  10. [BZOJ1022][SHOI2008]小约翰的游戏

    bzoj luogu sol 显然这个玩意儿和普通\(Nim\)游戏是有区别的. 形式化的,\(Nim\)游戏的关键在于决策集合为空者负,而这里的决策集合为空者胜. 所以就显然不能直接用\(SG\)函 ...