有没有办法拦截和“更改” python请求响应主体?

时间:2020-10-03 19:42:22

标签: python http request

我想检查所有请求(就像查尔斯,提琴手和某些其他网络拦截器一样),当它找到匹配的请求时,它将伪造请求响应正文

示例:我的程序从网站https://thisisnotareal.link?query=999登录了一个get会话,该网站将返回<img src="{{ user.profile.image.url }}">,但是在返回错误之前,我想强制响应正文为{"status":"error"}就像Charles Proxy对“地图本地/重写”功能所做的一样。

我已经搜索了stackoverflow,但是没有找到任何与我想要的东西匹配的东西(至少在我的搜索中)

如果可能的话,可以使用Idk,但我希望有办法

我也使用python 3.6

1 个答案:

答案 0 :(得分:1)

有多种方法可以通过使用Charles或Proxyman来实现它

查尔斯

  • 本地映射:右键单击请求->本地映射->映射到本地文件:
HTTP/1.1 200 OK
Date: Wed, 07 Oct 2020 01:40:10 GMT
Content-Type: application/json
Connection: keep-alive
Vary: Origin

{
  "status": "noterror"
}
  • 重写:创建与您的请求匹配的规则->更改正文->设置{“ status”:“ noterror”}

代理人

  • 本地地图:右键单击请求->工具->本地地图:它将自动为您创建本地文件。

Map Local

  • 脚本:它喜欢Rewrite,但它很灵活。您可以使用简单的Javascript代码来做任何您想做的事
function onResponse(context, url, request, response) {

  // Update Body
  var body = response.body;
  body["status"] = "noterror";
  response.body = body;

  // Done
  return response;
}