req icon indicating copy to clipboard operation
req copied to clipboard

向ChatGPT接口发送请求时,无法通过TLS指纹校验

Open tsingroo opened this issue 2 years ago • 2 comments

所有的参数都跟网页一样的情况下,无论是GET还是POST请求都返回了状态码 403。

tsingroo avatar Dec 14 '23 05:12 tsingroo

所有的参数都跟网页一样的情况下,无论是GET还是POST请求都返回了状态码 403。

有没有最小demo

gospider001 avatar Dec 14 '23 05:12 gospider001

package main

import (
	"fmt"
	"log"

	"github.com/imroc/req/v3"
)

func main() {
	PROXY_URL := ""       // 代理的IP和端口
	CONVERSATION_ID := "" // 这个是会话ID
	AUTHORIZATION := ""   // 这个是从网页版拿到的Authorization字段

	client := req.C().SetProxyURL(PROXY_URL)

	resp, err := client.R().
		SetHeader("Accept", "*/*").
		SetHeader("Authorization", AUTHORIZATION).
		SetHeader("Host", "chat.openai.com").
		SetHeader("Referer", "https://chat.openai.com").
		SetHeader("User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:120.0) Gecko/20100101 Firefox/120.0").
		Get("https://chat.openai.com/backend-api/conversation/" + CONVERSATION_ID)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println("resp.StatusCode", resp.StatusCode)
	fmt.Println(resp)
}

相同的参数用cycleTls可以请求成功,但是cycleTls不支持Stream模式读取响应

tsingroo avatar Dec 15 '23 01:12 tsingroo