You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用InspiroBot.me API实现机器人生成励志图片并发送至文本频道?

解决InspiroBot API调用返回Content-Type为null的问题

嘿,我来帮你搞定这个InspiroBot API的问题!你遇到的Content-Type为null、调用getContent()报错的情况,大概率是因为InspiroBot的API会拦截没有合法User-Agent的请求——很多公共API都会这么做,用来过滤掉爬虫或者不规范的请求,导致你拿到的响应不完整。

解决思路

  1. 给请求添加模拟浏览器的User-Agent头,让API认为这是正常的浏览器请求
  2. 正确读取API返回的内容:这个接口返回的是纯文本格式的图片URL,不是二进制文件,所以你需要把输入流转换成字符串来获取图片地址
  3. 拿到图片URL后,用你的机器人框架发送图片到文本频道

修正后的代码

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

public class InspiroBotExample {
    public static void main(String[] args) {
        try {
            // 初始化API请求地址
            URL apiUrl = new URL("http://inspirobot.me/api?generate=true");
            URLConnection connection = apiUrl.openConnection();
            
            // 关键:设置User-Agent,模拟浏览器请求
            connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36");
            
            // 读取返回的图片URL(API返回的是单行文本)
            try (BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
                String imageUrl = reader.readLine();
                System.out.println("生成的励志图片URL: " + imageUrl);
                System.out.println("Content-Type: " + connection.getContentType());
                
                // ---------------------------
                // 这里添加机器人发送图片的代码
                // 举个Discord JDA的例子:
                // TextChannel channel = ...; // 获取目标文本频道
                // channel.sendFile(new URL(imageUrl).openStream(), "inspire-quote.jpg").queue();
                // ---------------------------
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

代码关键点说明

  • User-Agent设置:这是解决问题的核心,没有这个头,API会拒绝返回完整响应,导致Content-Type为null
  • 输入流读取:因为接口返回的是纯文本URL,用BufferedReader的readLine()就能直接拿到完整的图片地址
  • 机器人发送图片:不同的机器人框架发送图片的方式不同,比如Discord的JDA支持直接通过URL流发送,或者你也可以先下载图片到本地再发送

这样修改后,你应该能正常拿到图片URL,然后就可以把图片发送到文本频道啦!

内容的提问来源于stack exchange,提问作者RoverKnight

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 02:43:16