如何使用HTTPie发送POST请求



我有一个基本的silex应用程序,我尝试使用HTTPie测试它。然而,当使用:

发布时
http POST http://localhost:1337 data="hello world"

data,我从请求对象通过:

$data = $request->request->get('data');

总是空的。这里的问题是什么?

这是一个httpie使用问题,因为form标志是必要的,因为silex要求参数是形式编码的,然而httpie的默认值是传递一个JSON对象。

$ http --form POST http://localhost:1337 data="hello world"
HTTP/1.1 200 OK
Cache-Control: no-cache
Connection: close
Content-Type: application/json
Date: Wed, 14 Oct 2015 15:04:09 GMT
Host: localhost:1337
X-Powered-By: PHP/5.5.9-1ubuntu4.13
{
    "message": "hello world"
}

为了澄清kOpernikus所说的内容,当您使用httpie发出POST请求时,请使用以下语法:

   http --form post :3000/register username="gilbert" password="stackoverflow!"

或者,由于表单是针对post请求的,您可以省略post并将--form缩写为-f,如下所示:

   http -f :3000/register username=gilbert password=stackoverflow!

编辑(感谢Aerials)

要在post请求中传递csrf令牌作为标头,请执行:

http --form POST http://localhost:8000/login/ username=user password=pass X-CSRFToken:assQ$%auxASDLSIAJSd

相关内容

  • 没有找到相关文章

最新更新