首页 文章

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

提问于
浏览
-3

我正在尝试测试API以接受多部分表单数据 . 我正在尝试使用PhpStorm休息客户端 . 我将方法设置为Post和我的 endpoints 的路径然后在请求主体下我检查了Text,在那里放了一些文本,我还检查了文件上传(multipart / form-data)并将路径和文件名放入File To Send文本框 .

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

我需要两件事 . 我需要能够在邮件正文中发送文本,我还需要能够附加多个文件 . 换句话说,我需要设置一个真正的multipart / form-data post请求 .

任何建议将不胜感激 .

2 回答

  • 1

    目前,内置REST客户端[12]无法实现这一点 .

    https://youtrack.jetbrains.com/issue/WI-40562 - 观看此门票(星级/投票/评论)以获得有关任何进展的通知 .


    请注意,RESTful客户端现在被认为是过时的(?),因为JetBrains引入了 Editor-based Rest Client ,它将取代GUI工具,并将成为未来开发/新功能的工具 . 在这里查看更多:

  • 1

    好的 - 我想出了一种方法 . 谢谢你指着我走正确的道路!

    我不确定为什么JetBrains会转储gui REST客户端 . 它肯定比通过新的编辑方法手动创建其余调用具有更大的潜力,但这是我将用它们提出的 .

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

    xdebug.remote_autostart = 1

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

    在这一点上,我们不再需要担心触发xdebug,虽然可以在你的休息电话**中做,但它不断给我带来麻烦 .

    第2步:

    手动创建您的调用并创建Content-Type:multipart / form-data . 这是一个例子(请注意,换行(返回)很重要!):


    POST http://hostname/endpoint/
    Accept: */*
    Cache-Control: no-cache
    Content-Type: multipart/form-data; boundary="abcd"
    
    --abcd
    Content-Disposition: form-data; name="json_string"
    
    {"id”:”1234”,”message”:”here are your files”}
    --abcd
    Content-Disposition: form-data; name="file1"; filename="test.pdf"
    
    < /pathToFile/test.pdf
    --abcd
    Content-Disposition: form-data; name="file2"; filename="secondfile.txt"
    
    < /pathToFile/secondfile.txt
    --abcd--
    

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

    现在应该触发断点,您可以检查通话结果 .

    **注意:如果您确实想要尝试使用api调用fire xdebug,可以通过在 endpoints 上启动会话来实现,如下所示:

    POST http://host/endpoint/?XDEBUG_SESSION_START=PHPSTORM
    Accept: */*
    Cache-Control: no-cache
    XDEBUG_SESSION=PHPSTORM
    Content-Type: multipart/form-data; boundary="abcd"
    

    但是,我遇到了这种方法的多个问题 . 我确信这样的东西可以工作,但我无法弄清楚如何做到这一点 . ;-)

相关问题