如何在PHP中启动GET/POST/PUT/DELETE请求并判断请求类型?

2022-08-30 22:46:11

我从来不知道请求是如何发送的。PUT/DELETE

如何在PHP中做到这一点?

我知道如何使用 curl 发送 GET/POST 请求:

$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookieFile);
curl_setopt($ch, CURLOPT_COOKIEFILE,$cookieFile);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch,   CURLOPT_SSL_VERIFYPEER,   FALSE);
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 4);

但是如何做/请求?PUTDELETE


答案 1

使用
DELETEcurl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');PUTcurl_setopt($ch, CURLOPT_PUT, true);

不依赖于正在安装的 cURL 的替代方法是与自定义 HTTP 流上下文一起使用。file_get_contents

$result = file_get_contents(
    'http://example.com/submit.php', 
    false, 
    stream_context_create(array(
        'http' => array(
            'method' => 'DELETE' 
        )
    ))
);

查看这两篇关于使用PHP进行REST的文章


答案 2

一般来说,如果你想发送一些“非GET”请求,你通常会使用curl


您将使用curl_setopt函数来配置要发送的请求;在大量可能的选项中,要更改请求方法,您至少会对这些选项感兴趣(引用):

  • CURLOPT_CUSTOMREQUEST:执行 HTTP 请求时要使用的自定义请求方法,而不是“”或“”。这对于执行“”或其他更晦涩的HTTP请求非常有用。GETHEADDELETE
  • CURLOPT_HTTPGET:将 HTTP 请求方法重置为 。TRUEGET
  • CURLOPT_POST:做一个常规的HTTP。TRUEPOST
  • CURLOPT_PUT:对文件进行 HTTP 处理。必须使用 和 设置要的文件。TRUEPUTPUTCURLOPT_INFILECURLOPT_INFILESIZE


当然,这不是您将使用的唯一功能;有关如何使用 curl 发送请求的示例,请参阅 curl_exec 的文档页面。curl_setopt

(是的,这个例子很简单,并发送一个GET请求 - 但你应该能够从那里构建;-))


推荐