相关疑难解决方法(0)

如何查看Python应用程序发送的整个HTTP请求?

就我而言,我正在使用该requests库通过HTTPS调用PayPal的API.不幸的是,我从PayPal收到错误,并且PayPal支持无法弄清楚错误是什么或导致错误.他们要我"请提供整个请求,包括标题".

我怎样才能做到这一点?

python debugging https python-requests

236
推荐指数
7
解决办法
17万
查看次数

如何使用Python获取请求中的响应的原始内容?

尝试requests在Python中获取HTTP响应内容的原始数据.我有兴趣通过另一个频道转发响应,这意味着理想情况下内容应尽可能保持原始状态.

这样做有什么好办法?

非常感谢!

python http request web python-requests

15
推荐指数
2
解决办法
4万
查看次数

Python file.write创建额外的回车

我正在使用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.为什么?

python windows eol

14
推荐指数
3
解决办法
3万
查看次数

在函数内定义包含换行符的子字符串的三引号 f 字符串,且不输出缩进

我正在尝试漂亮地打印一个 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)

python formatting f-string

10
推荐指数
1
解决办法
2万
查看次数

Python 在发送前请求查看

有人可以为我提供一种方法来查看我在将其发送到服务器之前生成的请求,这是代码:

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 发送该请求。

python python-requests

9
推荐指数
2
解决办法
7956
查看次数

Aiohttp如何记录请求体

我正在使用 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

python-3.x aiohttp

9
推荐指数
1
解决办法
1063
查看次数

Python request.post 不接受字典

这是我要发布的数据,

这是字典答案的印刷版:

{'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)

python api request

6
推荐指数
2
解决办法
2万
查看次数

Node.js 请求 - 打印帖子的整个 http 请求(原始)

我正在使用 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)

node.js

6
推荐指数
1
解决办法
9176
查看次数

Python请求:计算出请求的完整大小

如何获取使用Python请求发送的请求的完整大小(我不要求响应)
我应该简单地添加body(如果适用)和的长度吗headers
关于请求元素还有什么需要考虑的吗?

这适用于发送的任何请求(GET、POST、DELETE),我希望计算其大小。

python request

3
推荐指数
1
解决办法
6129
查看次数

当同一个 POST 在 Postman 中正常工作时,如何解决 Python 请求 POST 失败的问题?

当发出在 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 答案,我能够进一步分析请求库如何解释我提供的有效负载,但我仍然不确定如何解释这个通用错误消息,或者原因可能是什么。

有谁知道根本问题可能是什么?请注意,我可以从此 …

python python-3.x python-requests

2
推荐指数
1
解决办法
2742
查看次数