就我而言,我正在使用该requests库通过HTTPS调用PayPal的API.不幸的是,我从PayPal收到错误,并且PayPal支持无法弄清楚错误是什么或导致错误.他们要我"请提供整个请求,包括标题".
我怎样才能做到这一点?
尝试requests在Python中获取HTTP响应内容的原始数据.我有兴趣通过另一个频道转发响应,这意味着理想情况下内容应尽可能保持原始状态.
这样做有什么好办法?
非常感谢!
我正在使用python将一系列SQL语句写入文件.模板字符串如下所示:
store_insert = '\tinsert stores (storenum, ...) values (\'%s\', ...)'
Run Code Online (Sandbox Code Playgroud)
我正在写这样的文件:
for line in source:
line = line.rstrip()
fields = line.split('\t')
script.write(store_insert % tuple(fields))
script.write(os.linesep)
Run Code Online (Sandbox Code Playgroud)
但是,在结果输出中,我看到\ r \n\r \n在每一行的末尾,而不是我期望的\ r \n.为什么?
我正在尝试漂亮地打印一个 HTTP 请求(我在这里嘲笑过)。
from typing import NamedTuple
class RequestMock(NamedTuple):
method = 'POST'
url = 'https://bob.com'
body = 'body1\nbody2'
headers = {'a': '1', 'b': '2'}
Run Code Online (Sandbox Code Playgroud)
我有一个函数可以执行此操作:
req = RequestMock()
def print1(req):
headers = '\n'.join(f'{k}: {v}' for k, v in req.headers.items())
s = '\n'.join([
f'{req.method} {req.url}',
headers,
req.body
])
print(s)
print1(req)
# POST https://bob.com
# a: 1
# b: 2
# body1
# body2
Run Code Online (Sandbox Code Playgroud)
f-strings但是,当我为了清晰和易于修改而尝试重写它时,我得到了一些不好的缩进:
# what I want the code to look like
def print2(req):
headers = '\n'.join(f'{k}: {v}' for …Run Code Online (Sandbox Code Playgroud) 有人可以为我提供一种方法来查看我在将其发送到服务器之前生成的请求,这是代码:
import requests
import urllib2
import logging
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
url = "https://10.1.1.254:4081/admin/api/jsonrpc/"
session = requests.Session()
data = {
"jsonrpc": "2.0", "id": 1, "method": "Session.login",
"params": {"userName": "test", "password":"test123"}
}
r = session.post(url, json=data, verify=False)
data = {"jsonrpc": "2.0", "id":3, "method":"Session.logout"}
r = session.post(url, json=data, verify=False)
Run Code Online (Sandbox Code Playgroud)
所以我想要的是在 Python 发送它之前用 session.post 发送该请求。
我正在使用 aiohttp 并希望在发送原始请求之前将其记录在 ClientSession 中。我看到对于 requests 模块,它是可行的:Python requests - print another http request (raw)?
但是当我尝试查找 aiohttp 时,我只能找到请求标头,但我想要的是正文:Dumping the request headers with aiohttp
我已经查看了跟踪的源代码,但我所能找到的只是正在使用的 ClientResponse 类,并且没有使用 ClientRequest 类的实例: https: //github.com/aio-libs/aiohttp/blob/master/aiohttp/tracing .py
这是我要发布的数据,
这是字典答案的印刷版:
{'Emails': set([u'vernon.fadel@denesik.com', u'helyn67@cruickshankmckenzie.com', u'tryan@fishercremin.com', u'cecilia.kerluke@gmail.com', u'sonia.ruecker@schmidt.info', u'reichel.tamatha@gmail.com', u'johntyree69@greendale.edu', u'gail34@reichel.com', u'birdman@quitzon.net ', u'onolan@gmail.com', u'lindgren.merry@howe.com', u'wilderman.nyree@heidenreich.com', u'yschneider@jacobson.biz', u'nakia.larkin@gmail.com', u'vblanda@gmail.com', u'pkoch@yahoo.com', u'ygoyette@yahoo.com', u'wiegand.lynnette@beer.com', u'ubradtke@hotmail.com', u'troy67@yahoo.com', u'eileen.gusikowski@oreilly.info', u'glubowitz@yahoo.com', u'inolan@hotmail.com', u'lfranecki@hotmail.com', u'miller.hana@gmail.com', u'morissette.lalla@kuhicmuller.com', u'harber.gisele@gmail.com', u'odalys.dubuque@ebertrunte.net', u'jones.kyree@auer.net', u'adams77@yahoo.com', u'parisian.linda@hotmail.com', u'channing.cremin@toy.org', u'chad.armstrong@yahoo.com', u'isaac.nolan@hotmail.com', u'kozey.luciana@collins.biz', u'cstehr@keebler.com', u'jquitzon@gmail.com', u'hhirthe@yahoo.com', u'emilia16@block.com', u'arice@greenholtconsidine.com', u'tobin.schuppe@gmail.com', u'wyman.junious@gmail.com', u'mrath@ruecker.com ', u' johns.sonji@lakinwalker.info', u'thiel.cassie@hodkiewicz.info', u'fjaskolski@hotmail.com', u'mosciski.destany@hotmail.com', u'vrippin@gmail.com', u'zschuppe@hotmail.com', u'clotilda26@goodwinlind.info', u'lizette.walker@stanton.com', u'hettinger.kamari@hotmail.com', u'emelia54@yahoo.com', u'terry.ezekiel@hotmail.com', u'douglyass.dickinson@hotmail.com', u'zulauf.olympia@gmail.com', u'maxxx.waters@sauer.biz', u'abshire.charmaine@schusterlabadie.com', u'kuvalis.dewitt@wolfschaefer.com', u"elberta.o'connell@yahoo.com", u'henery76@yahoo.com', u'britny60@gmail.com', u'ed.hilpert@hansen.com', u'burnice.feest@yahoo.com', u' ybartoletti@littel.biz', u'sharde.murazik@hotmail.com', u'angelica.klocko@ankunding', u'brandi.klein@hotmail.com', u'dollie49@hotmail.com', u'mrath@ruecker.com', u'hayley27@koelpin.com', u'georgiann.mertz@moen.net', u'floretta39@volkmanrosenbaum.net', …Run Code Online (Sandbox Code Playgroud) 我正在使用 Node.js 中的请求库来访问 Google 的文本转语音 API。我想打印出正在发送的请求,就像这个python 示例一样。
这是我的代码:
const request = require('request');
const headers = {headers: {'input': {'text':'I want to say this'}, 'voice':{ 'languageCode' : 'en-US'},'audioConfig':{'audioEncoding': 'MP3'}}}
request.post('https://texttospeech.googleapis.com/v1beta1/text:synthesize?key=API_KEY',headers, (error, res, body) => {
if (error) {
console.error(error)
return
}
console.log(`statusCode: ${res.statusCode}`)
console.log(body)
})
Run Code Online (Sandbox Code Playgroud) 如何获取使用Python请求发送的请求的完整大小(我不要求响应)
我应该简单地添加body(如果适用)和的长度吗headers?
关于请求元素还有什么需要考虑的吗?
这适用于发送的任何请求(GET、POST、DELETE),我希望计算其大小。
当发出在 Postman 中工作正常的 POST 请求时,我继续从 python 请求中收到非常通用、无用的错误消息。
无论我尝试什么,我都会继续收到两条错误消息之一。请注意,调用的 python 脚本没有第155 行,有效负载也不包含字母“u”:
{"error":{"detail":"SyntaxError: Unexpected token: u (sys_script_include.d2426c9ec0a8016501958bf2ac79c775.script; line 155)","message":"Unexpected token: u"},"status":"failure"}
{"error":{"message":"Unexpected token: u","detail":"SyntaxError: Unexpected token: u (sys_script_include.d2426c9ec0a8016501958bf2ac79c775.script; line 155)"},"status":"failure"}
Run Code Online (Sandbox Code Playgroud)
在Postman中,参数会被正确解释,然后附加到 url 中,例如:
https://areallylongurl?params={"catalogItem": "Req Name"}
Run Code Online (Sandbox Code Playgroud)
在Python请求中,我尝试了各种组合,但没有运气。
payload = {"params": '{"catalogItem": "Req Name"}'}
response = requests.post(url, headers=headers, json=payload, verify=False)
response = requests.post(url, headers=headers, json=json.dumps(payload), verify=False)
response = requests.post(url, headers=headers, data=payload, verify=False)
response = requests.post(url, headers=headers, data=json.dumps(payload), verify=False)
Run Code Online (Sandbox Code Playgroud)
通过使用这个非常有用的 SO 答案,我能够进一步分析请求库如何解释我提供的有效负载,但我仍然不确定如何解释这个通用错误消息,或者原因可能是什么。
有谁知道根本问题可能是什么?请注意,我可以从此 …