如何在RESTful API中处理PUT请求


How to handle PUT requests in RESTful API?

我想在我的web服务中使用PUT请求进行更新操作,但我不知道如何处理PUT,因为没有像$_PUT这样的内置变量。

我试过parse_str(file_get_contents("php://input"),$post_vars);现在,如果我print_r$post_vars,它显示

------WebKitFormBoundaryJnBh3L2DKmMjdVmG Content-Disposition: form-data; name="fruit" vanana ------WebKitFormBoundaryJnBh3L2DKmMjdVmG Content-Disposition: form-data; name="items" 1 ------WebKitFormBoundaryJnBh3L2DKmMjdVmG--

如何获取在发出PUT请求时传递的确切参数?

您的问题

您的PUT请求具有multipart/form-data内容类型。所以parse_str函数无法解析它。

解决方案

您必须使用Content-Type=application/x-www-form-urlencoded发出PUT请求。然后可以使用parse_str(file_get_contents("php://input"), $post_vars); 进行解析

备注

您将无法上传文件。因为文件需要使用multipart/form-data

有一个超全局$_SERVER,它包含REQUEST_METHOD

它可以用于识别用于访问页面的请求方法;即"GET"、"HEAD"、"POST"、"PUT"。

因此,您可以在服务器上使用它来识别put请求。