gpt4 book ai didi

php - 将 PHP Curl 查询转换为 Python 请求

转载 作者:太空宇宙 更新时间:2023-11-03 14:34:18 25 4
gpt4 key购买 nike

在尝试将以下 PHP curl 查询转换为 Python 请求时,我遇到了一些问题。

给定 PHP 代码

$cfile = new CURLFile($filePath,$fileType,$filename);
$request='{"signers":["abc@xyz.com"],"expire_in_days":10, "display_on_page":"all"}';
$ch = curl_init();
curl_setopt($ch, CURLOPT_HTTPHEADER, array('authorization: Basic Base64encode(client_id:client_secret)'));
$post = array('file'=>$cfile,'request' =>$request);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$res = curl_exec($ch)

我的Python代码版本

request_data = {}
request_data['signers'] = ['abc@xyz.com']
request_data['expire_in_days'] = 10
request_data['display_on_page'] = 'all'
temp_file_path = 'PdfTest.pdf'
files = {'file': open(temp_file_path, 'rb')}
headers = {}
headers['content-type'] = "multipart/form-data"
headers['authorization'] = 'Basic '+auth # auth contains b64 client:secret
r = requests.post(url, files=files, data={'request': request_data}, headers=headers)

考虑到我的请求 URL 相同,授权的基数 64 值也相同。 PHP 代码从服务器返回正确的响应,但 Python 代码奇怪地表示提供了一个响应,告诉 "code":"UNSUPPORTED_MEDIA_TYPE"

最佳答案

经过更多检查后,我似乎发现问题出在以下几行,files需要强制filetype,可以从MimeTypes()获取.guess_type(path)[0]request_data 应该是 json.dumps(request_data)

files = {'file': (temp_file_path, open(temp_file_path, 'rb'), filetype)}
# .... Other code
r = requests.post(url, files=files, data={'request': json.dumps(request_data)}, headers=headers)

关于php - 将 PHP Curl 查询转换为 Python 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47071771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com