import requests # 1. 配置 API 密钥和请求地址 API_KEY YOUR_OPENAI_API_KEY URL https://openai.com # 2. 设置请求头必须包含 Authorization 和 Content-Type headers { Authorization: fBearer {API_KEY}, Content-Type: application/json } # 3. 构建请求体与官方库的参数完全一致 data { model: gpt-4o, messages: [ {role: system, content: 你是一个精炼的助手。}, {role: user, content: 什么是闭包用一句话回答。} ], stream: False # 确保设置为 False表示非流式一次性返回 } # 4. 发送 POST 请求 response requests.post(URL, headersheaders, jsondata) # 5. 解析并提取结果 if response.status_code 200: result response.json() # 按照 OpenAI 的标准 JSON 结构逐层提取文本 answer result[choices][0][message][content] print(answer) else: print(f请求失败状态码{response.status_code}) print(response.text) dj获取Authorization和Content-Type # 推荐使用 .get()防止请求头不存在时程序报错崩溃 auth_header request.META.get(HTTP_AUTHORIZATION) if auth_header: # 此时 auth_header 的内容通常是 Bearer your_api_key # 如果需要提取出纯粹的 API_KEY try: token_type, api_key auth_header.split( ) print(f提取到的 API KEY 是: {api_key}) except ValueError: print(Authorization 格式不正确) else: print(未携带 Authorization 请求头) def my_view(request): # 方式一使用 Django 提供的快捷属性推荐最干净只返回 application/json content_type request.content_type # 方式二从 request.META 中获取 content_type_alt request.META.get(CONTENT_TYPE) print(fContent-Type 是: {content_type})import asyncio import json import httpx #strem async def main(): API_KEY YOUR_OPENAI_API_KEY URL https://openai.com headers { Authorization: fBearer {API_KEY}, Content-Type: application/json } data { model: gpt-4o, messages: [ {role: user, content: 请写一首关于写代码的现代诗。} ], stream: True # 1. 必须设置为 True开启流式传输 } # 2. 使用 client.stream() 以流式上下文启动异步 POST 请求 async with httpx.AsyncClient() as client: async with client.stream(POST, URL, headersheaders, jsondata) as response: if response.status_code ! 200: print(f请求失败: {response.status_code}) return # 3. 按行迭代读取服务器发送过来的数据 async for line in response.aiter_lines(): # 过滤掉空行 if not line.strip(): continue # OpenAI 规范每行数据都以 data: 开头 if line.startswith(data: ): content line[6:].strip() # 移除 data: 前缀 # 4. 判断流是否结束。OpenAI 传输结束时会发送 [DONE] if content [DONE]: break try: # 5. 解析每一行的 JSON 片段 chunk_json json.loads(content) # 提取当前片段生成的文本注意结构与非流式不同是 delta 而不是 message delta chunk_json[choices][0][delta] if content in delta: text_token delta[content] print(text_token, end, flushTrue) # 实时打印不换行 except (json.JSONDecodeError, KeyError, IndexError): continue # 运行异步函数 asyncio.run(main())方法一使用 Fiddler / Mitmproxy 强行拦截最推荐成功率高即使是.exe它在发起 HTTPS 请求时绝大多数情况下仍然会遵循 Windows 系统的代理设置WinINet/WinHTTP。准备代理工具下载并安装Fiddler Classic或Mitmproxy。开启 HTTPS 解密以 Fiddler 为例点击菜单栏Tools-Options-HTTPS。勾选Decrypt HTTPS traffic。弹窗提示安装证书时必须点击“是 (Yes)”将 Fiddler 的根证书安装到 Windows 系统的受信任根证书颁发机构中。设置全局代理Fiddler 启动后会自动接管 Windows 系统的全局代理。运行.exe抓包运行你的闭源.exe程序触发 API 请求。检查 Fiddler 左侧列表中是否有该 API 网址。如果有点击它在右侧的Inspectors-TextView或JSON选项卡中就能直接看到明文的请求和回复。⚠️ 注意可能遇到的坑如果运行.exe时Fiddler 没有任何流量或者.exe报错提示“证书校验失败SSL/TLS Certificate Verification Failed”说明该程序开启了证书固定SSL Pinning或者不走系统代理。请看下面的解决方法。方法二针对不走系统代理的.exe使用 Proxifier 强行路由如果.exe内部硬编码忽略了系统代理导致 Fiddler 抓不到包你需要用Proxifier软件强行将该.exe的流量塞给 Fiddler。配置 Fiddler 允许远程连接在 Fiddler 的Tools-Options-Connections中勾选Allow remote computers to connect。记住 Fiddler 的默认端口是8888。重启 Fiddler。配置 Proxifier下载并打开 Proxifier。点击Profile-Proxy Servers-Add。Address 填写127.0.0.1Port 填写8888Protocol 选择HTTPS或 HTTP点击 OK 保存。设置特定抓包规则点击Profile-Proxification Rules-Add。在Applications框中输入你那个.exe的进程文件名例如my_program.exe。在底部的Action下拉菜单中选择你刚才添加的127.0.0.1:8888代理。点击 OK。运行程序此时 Proxifier 会强制该.exe的所有网络流量通过 Fiddler你可以在 Fiddler 中直接查看明文。方法三使用系统级抓包工具 eBPF / Fiddler Everywhere如果上述方法因为证书固定SSL Pinning导致程序直接闪退或报错你需要使用更底层的注入手段使用具有“逆向”功能的工具可以使用Reqable一款现代网络调试工具它针对 Flutter、Python 等打包的 应用提供了很强的自动跳过证书检查或强制代理功能。上传的图片是一个2x3的网格组合图包含5张参考图请准确识别并区分每一个元素第一行左边图1角色A他是【输入角色A的特征如金发穿红衣的年轻男子】。第一行中间图2角色B她是【输入角色B的特征如黑发穿皮衣的女子】。第一行右边图3角色C他是【输入角色C的特征如发蓝光的机器人】。第二行左边图4角色D他是【输入角色D的特征如白胡子的老头】。第二行中间图5核心场景这是一个【输入对这唯一场景的描述如霓虹闪烁的赛博朋克深夜街道】。视频生成任务请消除拼图的网格线将这4个角色角色A、B、C、D同时放进“核心场景”中。生成一段流畅、高画质的电影感视频让这四个人在这个场景里共同互动。具体动作【在这里输入你想要的剧情例如角色A和角色B正在并肩聊天角色C机器人从他们身边走过而角色D在背景中注视着他们。】请务必保持这4个角色的面部、服装特征与原图高度一致并完美还原场景图中的所有视觉细节。