使用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】
使用Get进行Http通信的更多相关文章
- 理解加密算法(三)——创建CA机构,签发证书并开始TLS通信
接理解加密算法(一)--加密算法分类.理解加密算法(二)--TLS/SSL 1 不安全的TCP通信 普通的TCP通信数据是明文传输的,所以存在数据泄露和被篡改的风险,我们可以写一段测试代码试验一下. ...
- 笔记:Binder通信机制
TODO: 待修正 Binder简介 Binder是android系统中实现的一种高效的IPC机制,平常接触到的各种XxxManager,以及绑定Service时都在使用它进行跨进程操作. 它的实现基 ...
- .NET 串口通信
这段时间做了一个和硬件设备通信的小项目,涉及到扫描头.输送线.称重机.贴标机等硬件.和各设备之间通信使用的是串口或网络(Socket)的方式.扫描头和贴标机使用的网络通信,输送线和称重机使用的是串口通 ...
- MVVM模式解析和在WPF中的实现(五)View和ViewModel的通信
MVVM模式解析和在WPF中的实现(五) View和ViewModel的通信 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 M ...
- 多线程的通信和同步(Java并发编程的艺术--笔记)
1. 线程间的通信机制 线程之间通信机制有两种: 共享内存.消息传递. 2. Java并发 Java的并发采用的是共享内存模型,Java线程之间的通信总是隐式执行,通信的过程对于程序员来说是完全透 ...
- 搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 (1)
搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 原文地址(英文):http://www.networkcomms.net/creating ...
- 高性能 TCP/UDP/HTTP 通信框架 HP-Socket v4.1.1
HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件.客户端组件和 Agent 组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/ ...
- TCP通信
//网络套接字编程实例,服务器端,TCP通信. #include <WinSock2.h> #pragma comment(lib,"ws2_32.lib") #inc ...
- JAVA通信系列一:Java Socket技术总结
本文是学习java Socket整理的资料,供参考. 1 Socket通信原理 1.1 ISO七层模型 1.2 TCP/IP五层模型 应用层相当于OSI中的会话层,表示层, ...
- ucos实时操作系统学习笔记——任务间通信(消息)
ucos另一种任务间通信的机制是消息(mbox),个人感觉是它是queue中只有一个信息的特殊情况,从代码中可以很清楚的看到,因为之前有关于queue的学习笔记,所以一并讲一下mbox.为什么有了qu ...
随机推荐
- java多线程学习一
声明:本篇博客是本人为了自己学习保存的心得,其内容主要是从大神——五月的仓颉的博客中学习而来,在此多谢大神五月的仓颉的分享,敬礼! 第一章:进程和线程的概念 进程:进程是操作系统中作为分配资源的基本单 ...
- MySQLDump 备份 Shell 脚本
#!/bin/sh - echo "************************************" echo "----Enterprise Cloud Da ...
- 关于调接口和腾讯云cos方面。
腾讯云的cos js jdk那个文档使用说明不好用. 都没看懂,而且图片上传也没有具体的详细.对于新手来说强制使用这个,弄得自己一头雾水. 工作效率就会下降. 为此我在网上搜了对象存储cos的常见错误 ...
- android不太常用的控件
AutoCompleteTextView:是一种与EditText类似的视图(实际上他是EditText的子类),只不过它还在用户输入时自动显示完成建议的列表 <AutoCompleteText ...
- Python习题持续更新
1.你是一个高级测试工程师,现在要做性能测试,需要你写一个函数,批量生成一些注册使用的账号. 产生的账号是以@163.com结尾,长度由用户输入,产生多少条也由用户输入,用户名不能重复,用户名必须由大 ...
- Linux_总结_01_VMware14虚拟机下安装CentOS7.x
一.前言 本文是采用最小安装方式 二.下载 1.官网 https://www.centos.org/download/ 在此页面下,选择 Minimal ISO 进行下载. 三.VMWare中新建虚拟 ...
- MySQL学习之一数据库简介
1.什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,长期储存在计算机内.有组织的.可共享的数据集合. 数据库中的数据指的是以一定的数据模型组织.描述和储存在一起. ...
- IO编程、操作文件或目录、序列化、JSON
IO中指Input/Output,即输入和输出:涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口 1.由于CPU和内存的速度远远高于外设的速度,所以,在IO编程中,存在速度严重不匹配问题.eg ...
- MPEG4、XVID、AVC有什么区别
MPEG-4包含XviD和DivX,而AVC优于二者mpeg4 DVD用的多,101mpeg4有AVC格式(加强版MP4)AVC/H.264是一种最新且技术含量最高的视频编码格式,由MPEG-4标准进 ...
- 使用POI导出excel进阶篇
进阶篇就是涉及到合并单元格了.就是某一列相同的单元格需要合并为一个,并分为多个sheet. 效果如图: 直接上代码,需要提供的数据自己搞,传到工具类里面就好. JcExcelVoSuper.java ...