duanbushi1479 2013-10-31 17:37
浏览 37
已采纳

guzzle命令发布数据

How do i get post data through the guzzle service clients getCommand function?

my json looks like the following:

    "createMessage": {
        "httpMethod": "POST",
        "uri": "conversations/{conversation_id}/message",
        "summary": "conversations by user",
        "responseType": "class",
        "responseClass": "\\Conversations\\Message",
        "parameters": {
            "conversation_id": {
                "location": "uri",
                "description": "conversation id",
                "type": "integer"
             },
             "message": {
                 "location": "postField",
                 "sentAs": "message",
                 "type": "string"
             }
         }
     }

then i currently put my post data as part of the array passed through the getCommand:

$client = new \Guzzle\Service\Client();
$client->setDescription(\Guzzle\Service\Description\ServiceDescription::factory(__DIR__ . '/client.json'));
$command = $client->getCommand('createMessage', array('conversation_id' => 6, 'message' => 'test post message'));

it creates the new record in the database but the post data is empty so the 'message' field is left empty.

i have tried setting $client->setPostField('message', 'test post message'); but doesn't appear to work.

  • 写回答

1条回答 默认 最新

  • dongmiyi8220 2013-11-01 11:02
    关注

    Setting the content type to application/x-www-form-urlencoded appears to have done the trick, originally i had:

    $command->set('command.headers', array('content-type' => 'application/json'));
    

    However POST requests in Guzzle are sent with an application/x-www-form-urlencoded Content-Type

    $command->set('command.headers', array('content-type' => 'application/x-www-form-urlencoded'));
    

    alternatively you can also do this in the json schema, setting a parameter of content-type:

    "content-type": {
        "location": "header",
        "default": "application/x-www-form-urlencoded"
     }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面