通义听悟 httpclient
时间: 2025-06-18 15:34:34 浏览: 16
### 通义听悟与HttpClient集成
#### HttpClient初始化
为了通过`HttpClient`访问通义听悟API,首先需要创建并配置一个`HttpClient`实例。这一步骤确保可以发送HTTP请求到指定的服务端点。
```csharp
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program {
private static readonly HttpClient client = new HttpClient();
public async Task InitializeClient() {
client.BaseAddress = new Uri("https://dashscope.aliyuncs.com/");
client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_ACCESS_TOKEN");
}
}
```
此代码片段展示了如何设置基础地址以及必要的认证头信息[^1]。
#### 构建请求体
构建向通义听悟服务发起请求所需的JSON格式的消息体非常重要。消息体包含了模型名称、对话流控制选项以及其他交互细节等内容。
```json
{
"model": "qwen2-vl-7b-instruct",
"stream": true,
"stream_options": {
"include_usage": true
},
"messages": [
{
"role": "system",
"content": "你是一个AI助手."
},
{
"role": "user",
"content": "你会写C#程序吗?写一个简单的实例"
}
]
}
```
上述JSON字符串定义了一个用于启动会话的请求负载,其中指定了使用的模型版本和其他必要参数[^3]。
#### 发送POST请求
一旦准备好了客户端和服务端之间的通信渠道,并且已经准备好要传递的数据包,则可以通过异步方式发出POST请求来触发实际处理过程。
```csharp
public async Task<string> PostAsync(string endpoint, string contentJson) {
var response = await client.PostAsync(endpoint, new StringContent(contentJson, Encoding.UTF8, "application/json"));
return await response.Content.ReadAsStringAsync();
}
```
这段代码实现了将之前构造好的JSON数据作为主体内容的一部分发送给目标URL的功能。
#### 处理响应结果
当接收到服务器返回的信息之后,通常是以分片形式逐步接收整个回复的内容。对于每一片段而言,解析其结构化部分(如`choices.delta.content`),从而获取最终想要的结果。
```csharp
// 假设我们已经有了来自上一环节得到的原始文本responseText
var jsonResponse = JObject.Parse(responseText);
foreach (var choice in jsonResponse["choices"]) {
Console.WriteLine(choice["delta"]["content"]);
}
```
这里展示的是怎样遍历从API获得的回答列表,并打印出每次更新的具体文字描述[^4]。
阅读全文
相关推荐





