没有项目描述

pyhttpintercept的Python项目详细描述


PyHttpIntercept

提供一个http服务器,可用于拦截和修改本地客户端的api请求/响应。

这对于从api生成不同响应类型并不总是理想的客户端测试非常有用。

http服务器提供以下功能:

  • 网站托管
  • 使用以下方法重定向请求:
    • http 3xx状态
    • 对客户透明
  • 拦截和修改请求。中间人,用于客户根据生产API进行测试。
  • 请求代理

当请求传入时,将按以下顺序检查和执行方法:

  1. 重定向
  2. 主持
  3. Intercept-只有在主机未接收到请求时,才能到达Intercept。
  4. 代理-只有在宿主或拦截未接收到请求时,才能达到代理配置。
  5. < > >

    托管请求

    站点可以像任何Web服务器一样托管。服务器仅支持静态站点/资源。

    主机配置

    配置文件示例:

    {"/":{"doc_root":"default_sites/","active":true,"description":"Root Site"},"/example":{"doc_root":"default_sites/example/","active":true,"description":"Example Site"}}

    已配置的站点配置密钥将设置为预期的URL路径。

    站点配置参数:

    • object key:string-站点所在的路径。
    • doc_root:string-配置站点的完整路径。也可以配置相对路径,如下所述。
    • 活动:布尔值-如果要为站点提供服务,则为true。
    • 说明:字符串-[可选]站点的说明。

    相对路径


    重定向请求

    发送HTTP 3xx状态

    这些是您的标准重定向。

    对客户透明

    对于不支持重定向的客户端,这些功能非常有用。

    一个例子是将具有硬编码端点的客户机重定向到实验室环境进行测试,而不必为实验室生成和安装特定的构建。

    重定向配置

    参数:

    • 对象键:字符串-要重定向的域。
    • 主机:字符串-[可选]要重定向到的完整域。
    • 路径:对象-[可选]包含为此域重定向的路径的对象。
    • 激活:布尔值-为真可启用重定向。
    • 说明:字符串-[可选]重定向说明。

    注意:必须至少指定主机路径中的一个!

    路径对象:

    • 对象键:字符串-重定向路径。
    • 主机:字符串-[可选]要重定向到的完整域。
    • 路径:字符串-[可选]要重定向到的完整路径。如果省略,则路径将设置为域根目录。
    • 状态:number-[可选]要发送的HTTP 3xx状态。指定此参数将告诉服务器使用http 3xx重定向,而不是透明重定向。
    • 激活:布尔值-为真可启用重定向。
    • 说明:字符串-[可选]重定向说明。

    注意:必须至少指定路径主机(来自站点/路径配置)中的一个!

    如果在密钥中指定了主机,则只有在截取或代理时才会对其进行验证,否则将忽略密钥。

    在同一站点内重定向路径:

    {"example.com":{"paths":{"/example_redirect":{"path":"/temp_path","active":true,}},"active":true,}}

    使用http 3xx重定向在同一站点内重定向路径:

    {"example.com":{"paths":{"/example_redirect":{"path":"/temp_path","status":301,"active":true,}},"active":true,}}

    将路径从一个站点重定向到另一个站点:

    {"example.com":{"host":"example2.com","paths":{"/example_redirect":{"path":"/","active":true,}},"active":true,}}

    这也可以在逐个路径的基础上完成:

    {"example.com":{"paths":{"host":"example2.com","/example_redirect":{"path":"/","active":true,},"/example_redirect2":{"host":"example3.com","path":"/","active":true,}},"active":true,}}

    如果为路径配置了主机,则它优先于站点重定向主机。

    将一个域重定向到另一个域:

    {"example.com":{"host":"example2.com","active":true,}}

    这适用于d的所有路径奥曼.


    拦截请求

    拦截配置

    参数:

    • 对象键:字符串-要拦截的域。
    • 激活:布尔值-为真以启用代理。
    • 说明:string-[可选]代理的说明。

    配置文件示例:

    {"example.com":{"active":true,"description":"Intercept & modify"}}

    代理请求

    参数:

    • 对象键:字符串-域到代理。
    • 激活:布尔值-为真以启用代理。
    • 说明:string-[可选]代理的说明。

    代理可以配置为代理所有请求:

    {"*":{"active":true,"description":"Proxy All"}}

    或仅限特定域:

    {"example.com":{"active":true,"description":"Proxy example.com"}}

    通配符

    "*"字符可用作通配符。

    域通配符

    *.example.com将处理所有子域的请求,但不处理example.com*example.com将处理所有子域的请求,包括example.com

    在下面的示例中,第一个配置example.com将只代理example.com的请求。 而第二个配置\*.example.com将代理所有子域,但不代理example.com

    {"/":{"doc_root":"default_sites/","active":true,"description":"Root Site"},"/example":{"doc_root":"default_sites/example/","active":true,"description":"Example Site"}}
    0

    此片段可以简化为:

    {"/":{"doc_root":"default_sites/","active":true,"description":"Root Site"},"/example":{"doc_root":"default_sites/example/","active":true,"description":"Example Site"}}
    1

    路径通配符(仅适用于重定向)

    /testing/*将重定向对路径/testing的所有请求,包括子路径,即/testing/path

    在下面的示例中,example.com/example_redirect和所有子路径都将重定向到example.com/temp_path

    {"/":{"doc_root":"default_sites/","active":true,"description":"Root Site"},"/example":{"doc_root":"default_sites/example/","active":true,"description":"Example Site"}}
    2

    欢迎加入QQ群-->: 979659372 Python中文网_新手群

    推荐PyPI第三方库


热门话题
java为什么@DELETE REST不起作用?   带有JPA2的java表值参数。1和Hibernate,Sql Server   如何将Java类添加到Xamarin VS2017项目   绘制多边形时出现java空指针异常   java Apache WebClient 303状态未重定向   java如何用一组字符串数组从数据库中获取数据   java是否可以使用Google Drive API向文件中添加脚本?   java组织。阿帕奇。贾斯珀。JspC jar文件下载   java在整个JSON映射中将单个值作为JSON流   通过命令行将文件输入到java   java rs.next()总是返回false   java标记异常,通知调用方利用异常消息   java Spring YML数组属性为空