如何使用InspiroBot.meapi?
How to use InspiroBot.me api?
我正在尝试在我的机器人中执行命令,它应该让 InspiroBot(来自 inspirobot.me)生成励志名言(如
图像,而不是字符串)并在文本通道中发送该图像。这个 url 是 http://inspirobot.me/api?generate=true ,其中生成另一个 url ,显示生成的图像。
我是 api 的新手,所以按照关于该主题的随机教程,我尝试了以下代码:
try {
URLConnection connection = new URL("http://inspirobot.me/api?generate=true").openConnection();
InputStream input = connection.getInputStream();
System.out.println(connection.getContentType());
} catch (IOException e) {
e.printStackTrace();
}
但是,返回的内容类型为空,尝试使用 getContent() 会导致错误,因为显然没有内容。 :/
您正在尝试访问 http://inspirobot.me/api?generate=true
,这只会将您重定向到页面的 HTTPS 版本 - https://inspirobot.me/api?generate=true
。它没有 return 其他任何东西。重定向响应没有正文,这就是内容类型 returned 为 null 并且您无法从 InputStream 中获得任何有用信息的原因。
但是,如果您首先访问 HTTPS,您会得到预期的结果:
try {
URLConnection connection = new URL("https://inspirobot.me/api?generate=true").openConnection();
InputStream input = connection.getInputStream();
System.out.println(connection.getContentType());
String pictureUrl = new BufferedReader(new InputStreamReader(input)).readLine();
System.out.println(pictureUrl);
} catch (IOException e) {
e.printStackTrace();
}
会给你:
text/html; charset=utf-8
https://generated.inspirobot.me/a/qlPBbxz1P5.jpg
应执行第二个请求以获取图片本身。
P.S。您尝试使用的 URLConnection class 非常旧,级别低,甚至不特定于 HTTP,我建议使用一些 http 客户端库,例如 Java 11.[=15 中引入的 apache http client or HttpClient class =]
我正在尝试在我的机器人中执行命令,它应该让 InspiroBot(来自 inspirobot.me)生成励志名言(如 图像,而不是字符串)并在文本通道中发送该图像。这个 url 是 http://inspirobot.me/api?generate=true ,其中生成另一个 url ,显示生成的图像。
我是 api 的新手,所以按照关于该主题的随机教程,我尝试了以下代码:
try {
URLConnection connection = new URL("http://inspirobot.me/api?generate=true").openConnection();
InputStream input = connection.getInputStream();
System.out.println(connection.getContentType());
} catch (IOException e) {
e.printStackTrace();
}
但是,返回的内容类型为空,尝试使用 getContent() 会导致错误,因为显然没有内容。 :/
您正在尝试访问 http://inspirobot.me/api?generate=true
,这只会将您重定向到页面的 HTTPS 版本 - https://inspirobot.me/api?generate=true
。它没有 return 其他任何东西。重定向响应没有正文,这就是内容类型 returned 为 null 并且您无法从 InputStream 中获得任何有用信息的原因。
但是,如果您首先访问 HTTPS,您会得到预期的结果:
try {
URLConnection connection = new URL("https://inspirobot.me/api?generate=true").openConnection();
InputStream input = connection.getInputStream();
System.out.println(connection.getContentType());
String pictureUrl = new BufferedReader(new InputStreamReader(input)).readLine();
System.out.println(pictureUrl);
} catch (IOException e) {
e.printStackTrace();
}
会给你:
text/html; charset=utf-8
https://generated.inspirobot.me/a/qlPBbxz1P5.jpg
应执行第二个请求以获取图片本身。
P.S。您尝试使用的 URLConnection class 非常旧,级别低,甚至不特定于 HTTP,我建议使用一些 http 客户端库,例如 Java 11.[=15 中引入的 apache http client or HttpClient class =]