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

如何在Unity的C#脚本中通过Curl请求OpenAI图片生成API获取链接

Unity中调用OpenAI图片生成API获取图片链接的实现

你提供的OpenAI图片生成API的Curl命令如下:

curl https://api.openai.com/v1/images/generations \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -d '{
  "prompt": "A cute baby sea otter",
  "n": 2,
  "size": "1024x1024"
}'

以下是完整的Unity C#脚本实现,替换你现有代码中的FillAndSend协程即可:

using UnityEngine;
using UnityEngine.Networking;
using System.Collections;

public class OpenAIImageGenerator : MonoBehaviour
{
    // 替换为你的OpenAI API密钥
    private const string API_KEY = "YOUR_API_KEY";
    private const string API_URL = "https://api.openai.com/v1/images/generations";

    void Start()
    {
        StartCoroutine(FillAndSend());
    }

    public IEnumerator FillAndSend()
    {
        // 1. 构造请求体数据
        var requestData = new
        {
            prompt = "A cute baby sea otter",
            n = 2,
            size = "1024x1024"
        };
        string jsonBody = JsonUtility.ToJson(requestData);
        byte[] bodyRaw = System.Text.Encoding.UTF8.GetBytes(jsonBody);

        // 2. 创建POST请求
        using (UnityWebRequest request = new UnityWebRequest(API_URL, "POST"))
        {
            // 设置请求头
            request.SetRequestHeader("Content-Type", "application/json");
            request.SetRequestHeader("Authorization", $"Bearer {API_KEY}");

            // 设置请求体
            request.uploadHandler = new UploadHandlerRaw(bodyRaw);
            request.downloadHandler = new DownloadHandlerBuffer();

            // 3. 发送请求并等待响应
            yield return request.SendWebRequest();

            // 4. 处理响应结果
            if (request.result != UnityWebRequest.Result.Success)
            {
                Debug.LogError($"请求失败: {request.error}");
            }
            else
            {
                // 解析返回的JSON数据
                ImageGenerationResponse response = JsonUtility.FromJson<ImageGenerationResponse>(request.downloadHandler.text);
                
                // 遍历并输出所有图片链接
                foreach (var imageData in response.data)
                {
                    Debug.Log($"图片链接: {imageData.url}");
                    // 这里可以添加后续处理逻辑,比如加载图片等
                }
            }
        }
    }

    // 用于解析API响应的JSON数据类
    [System.Serializable]
    private class ImageGenerationResponse
    {
        public ImageData[] data;
    }

    [System.Serializable]
    private class ImageData
    {
        public string url;
    }
}

关键说明:

  • API密钥替换:把API_KEY常量中的YOUR_API_KEY替换为你自己的OpenAI密钥
  • 请求体构造:用匿名类构造请求参数,再通过JsonUtility序列化为JSON字符串
  • 请求头设置:必须包含Content-Type和Authorization两个头信息,后者格式为Bearer 你的密钥
  • 响应解析:定义了和API返回结构对应的序列化类,通过JsonUtility.FromJson解析响应内容
  • 错误处理:判断请求结果,失败时输出错误信息,成功则提取图片链接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:15:15