gpt4 book ai didi

PhpStorm被动监听请求

转载 作者:太空宇宙 更新时间:2023-11-03 16:53:10 25 4
gpt4 key购买 nike

我想使用 PhpStorm 10 和 xdebug 调试 php 脚本。我的设置如下:

  1. 客户端是用Python编写的。客户端发送json数据。客户端的代码是(contact是一个包含json的变量):

    conn = httplib.HTTPConnection('192.168.2.103:85')
    headers = {"Content-type": "application/json", "charset" : "utf-8"}
    body = json.dumps(contact, ensure_ascii = 'False')
    conn.request('POST', '/web_service/index.php', body, headers)
    response = conn.getresponse()
  2. 服务器端是php。在服务器端,我按如下方式设置 xdebug:

    zend_extension = "E:\_Dizertatie\php\ext\php_xdebug.dll"
    xdebug.profiler_enable = 1
    xdebug.profiler_output_dir = "E:\_Dizertatie\tmp"
    xdebug.remote_enable =true
    xdebug.remote_host = "127.0.0.1"
    xdebug.remote_port = 9000

使用这个guide还有这个page仅当我启动“开始调试”书签时,我才能调试我的页面。我的 python 请求没有被 PhpStorm 的调试器捕获。我想被动地监听(不使用书签)并在 php 调试器中捕获所有请求,无论其来源如何(python、移动、不同的 php 脚本)。

发送 python 请求时是否可以使用配置来调试 php 脚本?

最佳答案

您需要告诉 xdebug 您想要调试此请求。

这正是书市/浏览器扩展所做的——它们设置与下一页请求一起发送的 xdebug cookie。您可以通过 XDEBUG_SESSION_START 将 cookie 替换为实际的 GET 或 POST 参数-- 例如将这样的参数添加到您的 conn.request(...线。

<小时/>

或者,您可以告诉 xdebug 自动调试每个请求(通过 xdebug.remote_autostart = 1 中的 php.ini ),这可能是不需要的,并且可能会产生一些“副作用”(大约 1 秒延迟如果调试客户端不可用则执行 - xdebug 等待可能的客户端响应的时间)。这与 zero config approach 相匹配(“电话 handle ”图标)您已经在使用。

如果您正在使用此选项,请不要忘记在 php.ini 中进行更改后重新启动您的 Web 服务器(如果您正在使用它,请重新启动 php-fpm)。否则,这些更改不太可能在重新启动之前自动生效(大多数设置中默认情况下)。

<小时/>

附注PhpStorm内置了简单的REST Client可通过 Tools | Test RESTful Web Service 访问您可以使用它来发送自定义请求(而不是使用真正的客户端(在您的情况下为 python 代码))。

PhpStorm v11(即将发布)起,您可以直接从那里启动调试(专用的“调试”按钮),而不是添加 xdebug cookie/查询参数。

另一种选择是使用类似的基于浏览器的工具(例如 Chrome 的 Postman)。

关于PhpStorm被动监听请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35680165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com