POST 请求被认为是 GET
POST request is considered as GET
我的问题是我的控制器像 GET 一样处理 POST 方法。当我尝试将参数传递给 post 方法时,它会给出 GET 结果,因为它们具有相同的语法。
我的POST函数如下:
/**
* @ApiDoc(description="Uploads photo with tags.")
*
* @Rest\FileParam(name="image", image=true, description="Image to upload.")
* @Rest\RequestParam(name="tags", requirements=".+", nullable=true, map=true, description="Tags that associates photo.")
* @Rest\View()
*/
public function postPhotoAction(ParamFetcher $paramFetcher, array $tags)
{
$em = $this->getDoctrine()->getManager();
$photo = new Photo();
$form = $this->createForm(new PhotoType, $photo);
if ($tags) {
$tags = $em->getRepository('TestTaskTagsBundle:Tag')->findOrCreateByTitles($tags);
}
$form->submit($paramFetcher->all());
if (!$form->isValid()) {
return $form->getErrors();
}
foreach ($tags as $tag) {
$photo->addTag($tag);
}
$em->persist($photo);
$em->flush();
return array('photo' => $photo);
}
当我尝试使用此 url : http://localhost/test/web/app_dev.php/photos?tags[]=bebe&_format=json&image=E:\photos\n3ass.jpg
post 图像时,它显示了 GET 结果。
如何解决?
http://localhost/test/web/app_dev.php/photos?tags[]=bebe&_format=json&image=E:\photos\n3ass.jpg
这是一个 GET 请求
阅读文档:http://www.w3schools.com/tags/ref_httpmethods.asp
如果你想模拟一个 POST 请求,你可以使用一些工具。在 POST 请求中,参数在正文中而不是在 URL.
中
如果您不在本地主机中,此工具可以为您提供帮助:https://www.hurl.it
在localhost,请大家使用WebTestCase模拟本地POST请求http://symfony.com/doc/current/book/testing.html#working-with-the-test-client
我的问题是我的控制器像 GET 一样处理 POST 方法。当我尝试将参数传递给 post 方法时,它会给出 GET 结果,因为它们具有相同的语法。
我的POST函数如下:
/**
* @ApiDoc(description="Uploads photo with tags.")
*
* @Rest\FileParam(name="image", image=true, description="Image to upload.")
* @Rest\RequestParam(name="tags", requirements=".+", nullable=true, map=true, description="Tags that associates photo.")
* @Rest\View()
*/
public function postPhotoAction(ParamFetcher $paramFetcher, array $tags)
{
$em = $this->getDoctrine()->getManager();
$photo = new Photo();
$form = $this->createForm(new PhotoType, $photo);
if ($tags) {
$tags = $em->getRepository('TestTaskTagsBundle:Tag')->findOrCreateByTitles($tags);
}
$form->submit($paramFetcher->all());
if (!$form->isValid()) {
return $form->getErrors();
}
foreach ($tags as $tag) {
$photo->addTag($tag);
}
$em->persist($photo);
$em->flush();
return array('photo' => $photo);
}
当我尝试使用此 url : http://localhost/test/web/app_dev.php/photos?tags[]=bebe&_format=json&image=E:\photos\n3ass.jpg
post 图像时,它显示了 GET 结果。
如何解决?
http://localhost/test/web/app_dev.php/photos?tags[]=bebe&_format=json&image=E:\photos\n3ass.jpg
这是一个 GET 请求
阅读文档:http://www.w3schools.com/tags/ref_httpmethods.asp
如果你想模拟一个 POST 请求,你可以使用一些工具。在 POST 请求中,参数在正文中而不是在 URL.
中如果您不在本地主机中,此工具可以为您提供帮助:https://www.hurl.it
在localhost,请大家使用WebTestCase模拟本地POST请求http://symfony.com/doc/current/book/testing.html#working-with-the-test-client