Mar*_*ark -2 php xdebug phpstorm web laravel
我正在尝试测试一个 API 来接受多部分表单数据。我正在尝试使用 PhpStorm 休息客户端。我将方法设置为 Post 以及端点的路径,然后在请求正文下检查了文本,在其中放入一些文本,还检查了文件上传(多部分/表单数据)并将路径和文件名放入要发送的文件中文本框。
当我单击“调试”并运行请求时,我只收到文本。我没有得到文件上传。如果我取消选中文本并单击“文件上传”,它会正确发送文件。
我需要两件事。我需要能够在邮件正文中发送文本,并且还需要能够附加多个文件。换句话说,我需要设置一个真正的多部分/表单数据发布请求。
任何建议将不胜感激。
好的 - 我想出了一种方法。感谢您为我指明了正确的道路!
\n\n我不确定为什么 JetBrains 放弃 gui REST 客户端。它当然比通过新的编辑方法手动创建其余调用更具潜力,但这是我将提出的内容。
\n\n步骤1:编辑网络服务器上的php.ini文件(在我的例子中是一个vagrant box)并设置:
\n\nxdebug.remote_autostart=1
\n\n如果您正在使用这些服务之一,请保存文件并重新启动您的网络服务器和 php-fpm(或 fastcgi 等...)。
\n\n此时,我们不再需要担心触发 xdebug,尽管可以在休息调用中执行该操作**,但它不断给我带来问题。
\n\n第2步:
\n\n手动创建调用并设置内容类型:multipart/form-data。这是一个示例(请注意,换行(返回)很重要!):
\n\nPOST http://hostname/endpoint/\nAccept: */*\nCache-Control: no-cache\nContent-Type: multipart/form-data; boundary="abcd"\n\n--abcd\nContent-Disposition: form-data; name="json_string"\n\n{"id\xe2\x80\x9d:\xe2\x80\x9d1234\xe2\x80\x9d,\xe2\x80\x9dmessage\xe2\x80\x9d:\xe2\x80\x9dhere are your files\xe2\x80\x9d}\n--abcd\nContent-Disposition: form-data; name="file1"; filename="test.pdf"\n\n< /pathToFile/test.pdf\n--abcd\nContent-Disposition: form-data; name="file2"; filename="secondfile.txt"\n\n< /pathToFile/secondfile.txt\n--abcd--\nRun Code Online (Sandbox Code Playgroud)\n\n第 3 步:在代码中放置断点,并从左侧第 1 行的绿色小箭头触发 http 调用。
\n\n您的断点现在应该被触发,您可以检查调用的结果。
\n\n** 注意:如果您确实想尝试让 api 调用触发 xdebug,您可以通过在端点上添加会话启动来实现,如下所示:
\n\nPOST http://host/endpoint/?XDEBUG_SESSION_START=PHPSTORM\nAccept: */*\nCache-Control: no-cache\nXDEBUG_SESSION=PHPSTORM\nContent-Type: multipart/form-data; boundary="abcd"\nRun Code Online (Sandbox Code Playgroud)\n\n但是,我在使用这种方法时遇到了多个问题。我确信类似的东西可以工作,但我不知道该怎么做。;-)
\n