Python请求扰乱了我的数据Di中的链接

2024-04-19 03:46:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个类似这样的请求:

data = {
    'USER': params['PARTNER'],
    'PWD': params['PWD'],
    'RETURNURL': 'https://my-site.com/',
    'CURRENCY': 'USD',
}

request = requests.post(url=URL, data=data, verify=False)

当我在shell中以相同的cURL命令运行这个命令时,根本没有问题。但是,当我通过请求来做这件事时,RETURNURL参数似乎出了问题。它在cURL中保存得很好,但是当从请求中处理时,当我在请求的另一边看到它时,结果是这样的,事情就是不起作用:

https%3A%2F%2Fmy-site.com%2F

提前感谢,永远在这里!你知道吗


在cURL中成功使用的实际命令如下:

curl https://pilot-payflowpro.paypal.com \
  -s \
  --insecure \
  -d PARTNER=PayPal \
  -d PWD=MyPassword \
  -d VENDOR=MyMerchantID \
  -d USER=MyMerchantID \
  -d TENDER=C \
  -d ACCT=5105105105105100 \
  -d TRXTYPE=S \
  -d EXPDATE=1221 \
  -d RETURNURL=https://my-site.com/
  -d AMT=1.00

请注意,一切都很好地工作,但我提交的参数是一个网址,是一个根本无法工作,格式是所有混乱。你知道吗


Tags: https命令compartnerdata参数mypwd
2条回答

使用 trace-ascii log.txt登录curl post进程。你知道吗

卷曲

=> Send data, 161 bytes (0xa1)
0000: PARTNER=PayPal&PWD=MyPassword&VENDOR=MyMerchantID&USER=MyMerchan
0040: tID&TENDER=C&ACCT=5105105105105100&TRXTYPE=S&EXPDATE=1221&RETURN
0080: URL=https://my-site.com/&AMT=1.00

具有data = data_dict的请求

Content-Length: 169

ACCT=5105105105105100&TENDER=C&EXPDATE=1221&PARTNER=PayPal&RETURNURL=https%3A%2F%2Fmy-site.com%2F&VENDOR=MyMerchantID&USER=MyMerchantID&TRXTYPE=S&AMT=1.00&PWD=MyPassword

所以你可以试着像@Mortz说的那样,把你的数据作为字符串发布。你知道吗

import requests

data = {
    'PARTNER':'PayPal',
    'VENDOR':'MyMerchantID',
    'TENDER':'C',
    'ACCT':'5105105105105100',
    'TRXTYPE':'S',
    'EXPDATE':'1221',
    'AMT':'1.00',
    'USER': 'MyMerchantID',
    'PWD': 'MyPassword',
    'RETURNURL': 'https://my-site.com/',
}
data = "&".join("{}={}".format(k,v)  for k,v in data.items())
print(len(data), data)

url = "https://pilot-payflowpro.paypal.com"

request = requests.post(url=URL, data=data, verify=False)

假设您将数据作为JSON发送,那么使用json参数而不是data发送数据

request = requests.post(url=URL, json=data, verify=False)

相关问题 更多 >