用golang实现浏览器请求8080apichatgpt后获取传递的问题和秘钥请求chatgptapi并返回内容
下面是一个简单的示例代码,使用golang实现浏览器请求8080/api/chatgpt后,获取传递的问题和秘钥请求chatgptapi并返回内容:
package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
"net/url"
)
func main() {
http.HandleFunc("/api/chatgpt", handleChatGPT)
log.Fatal(http.ListenAndServe(":8080", nil))
}
func handleChatGPT(w http.ResponseWriter, r *http.Request) {
if r.Method != "POST" {
http.Error(w, "Method not allowed", http.StatusMethodNotAllowed)
return
}
// 解析请求体
err := r.ParseForm()
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}
// 获取问题和秘钥
question := r.Form.Get("question")
key := r.Form.Get("key")
// 构造请求URL和参数
apiURL := "https://chatgptapi.com/api/chatgpt"
data := url.Values{}
data.Set("question", question)
data.Set("key", key)
// 发送POST请求
resp, err := http.PostForm(apiURL, data)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
defer resp.Body.Close()
// 读取响应内容
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
// 将响应内容返回给浏览器
fmt.Fprintf(w, "%s", body)
}
在上面的代码中,我们首先使用http.HandleFunc函数将/api/chatgpt路径与handleChatGPT函数绑定起来。在handleChatGPT函数中,我们首先检查请求方法是否为POST,然后解析请求体,获取问题和秘钥。接下来,我们构造请求URL和参数,使用http.PostForm函数发送POST请求,读取响应内容,最后将响应内容返回给浏览器。
请注意,在实际应用中,您需要根据实际情况修改代码,例如添加错误处理、验证输入、调整请求参数等。
原文地址: https://www.cveoy.top/t/topic/Cwv 著作权归作者所有。请勿转载和采集!