• 解决使用mitmprox抓包可以访问网页,但是使用python request 调用该网站接口报错问题


    可能有几种原因导致这种情况。以下是一些常见的问题和可能的解决方法:

    证书验证问题:

    当你使用mitmproxy抓包时,它通常会生成自签名的SSL证书,以便进行中间人攻击检查。但在Python中使用requests库时,默认情况下,它会验证SSL证书的有效性。你需要禁用SSL验证,以便使用mitmproxy生成的证书。
    你可以在requests中通过设置verify参数为False来禁用SSL证书验证,如下所示:

    python
    import requests
    
    url = "https://example.com/api/endpoint"
    response = requests.get(url, verify=False)

    这只是一个解决方案,但在实际应用中,禁用SSL验证可能会引入安全风险,因此请慎重使用。另一种方法是将mitmproxy的根证书添加到Python的信任证书列表中,以使requests能够验证mitmproxy生成的证书。

    代理设置问题:

    确保你在Python的requests中设置了正确的代理。mitmproxy通常会运行在本地代理服务器上(默认端口为8080),你需要在requests中指定这个代理。以下是一个设置代理的示例:

    python
    import requests
    
    url = "https://example.com/api/endpoint"
    proxies = {
        "http": "http://127.0.0.1:8080",
        "https": "http://127.0.0.1:8080",
    }
    
    response = requests.get(url, proxies=proxies)

    请确保将代理配置为与mitmproxy相匹配。

    请求头问题:

    mitmproxy可以修改请求头,包括User-Agent等信息。确保你的Python请求与mitmproxy捕获的请求头相匹配,否则服务器可能会拒绝请求。

    以上完美的解决了我的问题!


    __EOF__

  • 本文作者: 久曲健的测试窝
  • 本文链接: https://www.cnblogs.com/longronglang/p/17794759.html
  • 关于博主: 评论和私信会在第一时间回复。或者直接私信我。
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。
  • 相关阅读:
    探索常见经典目标检测算法:从YOLO到Faster R-CNN
    如何设置任务管理器的任务开机自启
    Java 编程问题:二、对象、不变性和`switch`表达式
    科技金融企业助力乡村振兴,能有多大新意?
    Web系统常见安全漏洞介绍及解决方案-CSRF攻击
    Scss
    react配置项目路径别名@
    ros2 --nav2
    Kotlin语言的函数头学习
    新手入门丨一堆代码在报错,如何才能快速定位Bug?!
  • 原文地址:https://www.cnblogs.com/longronglang/p/17794759.html