Java访问网页API

Java访问网页API

Java中有一个类是专门用于访问网络的类,他就是URL类

通常我们通过使用该类来实现访问网址的目的。

首先我们先准备一个URL类的对象

URL url = new URL(“网址内容”);

创建该类后,我们就会自动查询该网址,当然这里有个前提条件就是要连接网络,所以为避免无网络的情况,我们需要准备一个将错误抛出的部分(throws IOException)

随后我们要连接域名所对应的服务器,打开服务器

此处我们得到对象conn

URLConnection conn = url.openConnection() ;

然后我们来进行加载数据,获取加载数据的字节输入流,加载成为输入流,我们才能在后面进行输出。

InputStream is = conn.getInputStream() ;

我们将对象is装饰为能一次读取一行的字符输入流br

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

因我们常用的网址中的文字格式采用的是UTF-8,所以我们在其中加上了UTF-8,如果访问网址的文字格式为其他类型,我们在此出应放上其他的类型。

随后我们加载一行数据,将其保存在一个String类型的变量中

String text = br.readLine() ;

若不读取整行,我们在此可以选择进行读取部分输出,然后将其分类,进而输出我们想要的信息。

随后我们进行输出显示即可

System.out.println(text);

最后我们因为系统不会自动停止我们的运行指令,我们在最后要将运行程序暂停,释放资源。

br.close() ;

最后我们放上一段可以直接访问图灵机器人的代码,来为大家展示我们整个代码的全过程。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import java.util.Scanner;

public class demo1 {
     

	public static void main(String[] args) throws IOException {
     
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		String que = sc.nextLine();
		//将发送给图灵机器人的文字转换为URL编码
		String question = URLEncoder.encode(que,"UTF-8");
		//1、先准备一个URL类的对象(网址)
		//发送短信的api地址
		//URL url = new URL("https://itdage.com/kkb/kkbsms?key=xzk&number=15779608136&code=521314");
		//图灵机器人的API地址
		URL url = new URL("https://api.jisuapi.com/iqa/query?appkey=62958a3a6ef3c56d&question="+question);
		//2、连接服务器:打开服务器连接,得到对象conn
		URLConnection conn = url.openConnection() ;
		//3、加载数据:获取加载数据的字节输入流
		InputStream is = conn.getInputStream() ;
		//4、将is装饰为能一次读取一行的字符输入流br
		//BufferedReader br = new BufferedReader(new InputStreamReader(is));
		BufferedReader br = new BufferedReader(new InputStreamReader(is,"UTF-8"));
		//5、加载一行数据
		String text = br.readLine() ;
		//6、显示
		System.out.println(text);
		//7、释放资源
		br.close() ;

	}

}

上述代码既可以直接与图灵机器人进行对话,若需要多次对话,加上循环即可。

你可能感兴趣的:(笔记,Java)