当前位置: 首页 > 知识库问答 >
问题:

Python请求-打印整个http请求(原始)?

西门马鲁
2023-03-14

共有1个答案

缪阎宝
2023-03-14

因为V1.2.3请求添加了PreparedRequest对象。根据文档,“它包含将发送到服务器的确切字节”。

可以使用它来漂亮地打印请求,如下所示:

import requests

req = requests.Request('POST','http://stackoverflow.com',headers={'X-Custom':'Test'},data='a=1&b=2')
prepared = req.prepare()

def pretty_print_POST(req):
    """
    At this point it is completely built and ready
    to be fired; it is "prepared".

    However pay attention at the formatting used in 
    this function because it is programmed to be pretty 
    printed and may differ from the actual request.
    """
    print('{}\n{}\r\n{}\r\n\r\n{}'.format(
        '-----------START-----------',
        req.method + ' ' + req.url,
        '\r\n'.join('{}: {}'.format(k, v) for k, v in req.headers.items()),
        req.body,
    ))

pretty_print_POST(prepared)

它产生:

-----------START-----------
POST http://stackoverflow.com/
Content-Length: 7
X-Custom: Test

a=1&b=2
s = requests.Session()
s.send(prepared)
 类似资料:
  • 我同意在Spring WebFlux中打破非阻塞建议。RestTemplate被列为要弃用的目标,这意味着Webclient将用于阻塞操作。对这个项目来说,审计比绩效更重要。

  • 问题内容: 我正在处理HTTP流量数据集,该数据集由完整的POST和GET请求组成,如下所示。我已经用Java编写了代码,该代码已经分离了每个请求,并将其另存为数组列表中的字符串元素。 现在我很困惑如何在Java中解析这些原始HTTP请求,有什么方法比手动解析更好吗? 问题答案: 我[正在]处理[HTTP]流量数据集,该数据集由完整的POST和GET请求组成 因此,您想解析包含多个HTTP请求的文

  • 我正在研究HTTP流量数据集,它由完整的POST和GET请求组成,如下所示。我用java编写了代码,将每个请求分开,并将其保存为数组列表中的字符串元素。现在我很困惑如何在java中解析这些原始HTTP请求,有什么方法比手动解析更好吗?

  • 主要内容:HTTP请求完整格式HTTP请求完整格式 HTTP请求由3部分组成(请求行+请求头+请求体): 下面是一个实际的请求示例: ①是请求方法,HTTP/1.1 定义的请求方法有8种:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS、TRACE,最常的两种GET和POST,如果是RESTful接口的话一般会用到GET、POST、DELETE、PUT。 ②为请求对应的URL地址,它和报文头的Hos

  • 获取请求 要通过依赖注入的方式来获取当前 HTTP 请求的实例,你应该在控制器方法中引入 Illuminate\Http\Request 类。传入的请求实例将通过 服务容器 自动注入: <?php namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controll

  • Blade 支持注解的方式或者使用 Request 对象获取请求信息。 表单参数 先看看 Request 提供的操作表单参数的API Optional<String> query(String name) Optional<Integer> queryInt(String name) Optional<Long> queryLong(String name) Optional<Double> qu

  • 该插件适用于一般的请求场景,只支持post、get、put和delete请求,目前不适用于其他的请求形式,比如上传,下载等。插件定位为 小而美,而不是大而全,目标是切合实际,开箱即用。 平台差异说明 App H5 微信小程序 支付宝小程序 百度小程序 头条小程序 QQ小程序 √ √ √ √ √ √ √ 由于某些小程序平台的限制: delete请求,不支持支付宝和头条小程序(HX2.6.15) pu

  • 问题内容: 我如何查看Jersey生成并发送到服务器的实际请求?我在处理特定请求时遇到问题,运行Web服务器的同伴要求查看完整的请求(带有标头等)。 问题答案: 如果您仅使用Jersey客户端API,则LoggingFilter(客户端过滤器)应该可以帮助您: 否则,您可以使用其他LoggingFilter(容器过滤器)再次在服务器上记录请求和响应。