加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 将POST从请求转换为GAE urlfetch

发布时间:2020-12-20 11:40:40 所属栏目:Python 来源:网络整理
导读:我正在用PayPal付款.以下是它如何正常处理请求: res = requests.post(get_payment_info_url,headers=headers,data=params)res_data = res.json() 但是当我尝试使用urlfetch执行相同的请求时,它会给我一个错误(来自PayPal的200响应,但付款失败): res = urlf
我正在用PayPal付款.以下是它如何正常处理请求:

res = requests.post(get_payment_info_url,headers=headers,data=params)
res_data = res.json()

但是当我尝试使用urlfetch执行相同的请求时,它会给我一个错误(来自PayPal的200响应,但付款失败):

res = urlfetch.fetch(url=make_payment_url,payload=params,method=urlfetch.POST,headers=headers)
res_data = json.loads(res)

{u'responseEnvelope': {u'timestamp': u'2015-02-15T23:21:52.729-08:00',u'ack': u'Failure',u'build': u'15089777',u'correlationId': u'e202988541fde'},u'error': [{u'domain': u'PLATFORM',u'message': u'Invalid request: {0}',u'severity': u'Error',u'subdomain': 
u'Application',u'category': u'Application',u'errorId': u'580001'}]}

似乎谷歌可能正在剥离标题或其他东西?如果Google这样做,我将如何提出此请求?

最后,是否有任何理由使用urlfetch而不是请求(我已将其本地导入到我的GAE项目中?请求似乎更容易使用’友好’.

解决方法

为此,有效载荷需要进行urlencoded.这是有效的:

res2 = urlfetch.fetch(
                 url,method='POST',payload=urllib.urlencode(params)
               )
res2_data = json.loads(res2.content)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读