使用Get进行Http通信

来源:互联网 发布:公共网络摄像头直播 编辑:程序博客网 时间:2024/06/05 11:41

--------------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 staticvoid main(String[] args) {

  

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

new ReadByGet().start();

}

 

 

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

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

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

static class ReadByGetextends Thread{

 

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

@Override

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

0 0
原创粉丝点击