PhpStorm 休息客户端在多部分提交提交期间不发送文件

Mar*_*ark -2 php xdebug phpstorm web laravel

我正在尝试测试一个 API 来接受多部分表单数据。我正在尝试使用 PhpStorm 休息客户端。我将方法设置为 Post 以及端点的路径,然后在请求正文下检查了文本,在其中放入一些文本,还检查了文件上传(多部分/表单数据)并将路径和文件名放入要发送的文件中文本框。

当我单击“调试”并运行请求时,我只收到文本。我没有得到文件上传。如果我取消选中文本并单击“文件上传”,它会正确发送文件。

我需要两件事。我需要能够在邮件正文中发送文本,并且还需要能够附加多个文件。换句话说,我需要设置一个真正的多部分/表单数据发布请求。

任何建议将不胜感激。

Mar*_*ark 5

好的 - 我想出了一种方法。感谢您为我指明了正确的道路!

\n\n

我不确定为什么 JetBrains 放弃 gui REST 客户端。它当然比通过新的编辑方法手动创建其余调用更具潜力,但这是我将提出的内容。

\n\n

步骤1:编辑网络服务器上的php.ini文件(在我的例子中是一个vagrant box)并设置:

\n\n

xdebug.remote_autostart=1

\n\n

如果您正在使用这些服务之一,请保存文件并重新启动您的网络服务器和 php-fpm(或 fastcgi 等...)。

\n\n

此时,我们不再需要担心触发 xdebug,尽管可以在休息调用中执行该操作**,但它不断给我带来问题。

\n\n

第2步:

\n\n

手动创建调用并设置内容类型:multipart/form-data。这是一个示例(请注意,换行(返回)很重要!):

\n\n
\n\n
POST 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--\n
Run Code Online (Sandbox Code Playgroud)\n\n
\n\n

第 3 步:在代码中放置断点,并从左侧第 1 行的绿色小箭头触发 http 调用。

\n\n

您的断点现在应该被触发,您可以检查调用的结果。

\n\n

** 注意:如果您确实想尝试让 api 调用触发 xdebug,您可以通过在端点上添加会话启动来实现,如下所示:

\n\n
POST http://host/endpoint/?XDEBUG_SESSION_START=PHPSTORM\nAccept: */*\nCache-Control: no-cache\nXDEBUG_SESSION=PHPSTORM\nContent-Type: multipart/form-data; boundary="abcd"\n
Run Code Online (Sandbox Code Playgroud)\n\n

但是,我在使用这种方法时遇到了多个问题。我确信类似的东西可以工作,但我不知道该怎么做。;-)

\n