我正在尝试测试API以接受多部分表单数据 . 我正在尝试使用PhpStorm休息客户端 . 我将方法设置为Post和我的 endpoints 的路径然后在请求主体下我检查了Text,在那里放了一些文本,我还检查了文件上传(multipart / form-data)并将路径和文件名放入File To Send文本框 .
当我单击调试并运行请求时,我只收到文本 . 我没有上传文件 . 如果我取消选中文本并单击“文件上载”,则会正确发送文件 .
我需要两件事 . 我需要能够在邮件正文中发送文本,我还需要能够附加多个文件 . 换句话说,我需要设置一个真正的multipart / form-data post请求 .
任何建议将不胜感激 .
2 回答
目前,内置REST客户端[1&2]无法实现这一点 .
https://youtrack.jetbrains.com/issue/WI-40562 - 观看此门票(星级/投票/评论)以获得有关任何进展的通知 .
请注意,RESTful客户端现在被认为是过时的(?),因为JetBrains引入了 Editor-based Rest Client ,它将取代GUI工具,并将成为未来开发/新功能的工具 . 在这里查看更多:
https://www.jetbrains.com/help/phpstorm/http-client-in-product-code-editor.html
https://blog.jetbrains.com/phpstorm/2017/09/editor-based-rest-client/
https://blog.jetbrains.com/phpstorm/2018/04/easier-start-with-the-http-client/
好的 - 我想出了一种方法 . 谢谢你指着我走正确的道路!
我不确定为什么JetBrains会转储gui REST客户端 . 它肯定比通过新的编辑方法手动创建其余调用具有更大的潜力,但这是我将用它们提出的 .
第1步:编辑网络服务器上的php.ini文件(在我的例子中是一个流浪盒)并设置:
xdebug.remote_autostart = 1
如果您正在使用其中一种服务,请保存文件并重新启动您的网络服务器和php-fpm(或fastcgi等...) .
在这一点上,我们不再需要担心触发xdebug,虽然可以在你的休息电话**中做,但它不断给我带来麻烦 .
第2步:
手动创建您的调用并创建Content-Type:multipart / form-data . 这是一个例子(请注意,换行(返回)很重要!):
第3步:将断点放在代码中,然后从第1行左侧的绿色小箭头触发http调用 .
现在应该触发断点,您可以检查通话结果 .
**注意:如果您确实想要尝试使用api调用fire xdebug,可以通过在 endpoints 上启动会话来实现,如下所示:
但是,我遇到了这种方法的多个问题 . 我确信这样的东西可以工作,但我无法弄清楚如何做到这一点 . ;-)