外观
go 代码示例(Claude格式)
go
package main
import (
"bytes"
"context"
"encoding/json"
"fmt"
"net/http"
"time"
)
func main() {
// API密钥,替换为实际值
apiKey := "<API_KEY>"
// 请求URL
url := "https://maasapi.casdao.com/v1/messages"
// 构造请求头
headers := http.Header{}
headers.Set("Authorization", apiKey)
headers.Set("Content-Type", "application/json")
// 构造请求体
payload := map[string]interface{}{
"model": "kimi-k2.5",
"messages": []map[string]string{
{
"role": "user",
"content": "你好,人类的未来是怎样的?",
},
},
"max_tokens": 1024,
}
// 将请求体序列化为JSON
jsonPayload, err := json.Marshal(payload)
if err != nil {
fmt.Printf("JSON序列化失败: %v\n", err)
return
}
// 创建HTTP请求
req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonPayload))
if err != nil {
fmt.Printf("创建请求失败: %v\n", err)
return
}
req.Header = headers
// 设置超时上下文(60秒)
ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second)
defer cancel()
req = req.WithContext(ctx)
// 发送请求
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
fmt.Printf("发送请求失败: %v\n", err)
return
}
defer resp.Body.Close()
// 打印响应状态码
fmt.Printf("响应状态码: %d\n", resp.StatusCode)
// 解析响应JSON
var responseData map[string]interface{}
err = json.NewDecoder(resp.Body).Decode(&responseData)
if err != nil {
fmt.Printf("解析响应失败: %v\n", err)
return
}
// 格式化输出响应
prettyJSON, err := json.MarshalIndent(responseData, "", " ")
if err != nil {
fmt.Printf("格式化JSON失败: %v\n", err)
return
}
fmt.Println(string(prettyJSON))
}