首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在PHP中发起GET/POST/PUT/DELETE请求和判断请求类型?

如何在PHP中发起GET/POST/PUT/DELETE请求和判断请求类型?
EN

Stack Overflow用户
提问于 2010-01-28 18:06:18
回答 2查看 36.5K关注 0票数 16

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

如何在PHP中实现?

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

代码语言:javascript
复制
$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);

但是如何做PUT/DELETE请求呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-28 18:09:45

对于DELETE,请使用curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE');

对于PUT,请使用curl_setopt($ch, CURLOPT_PUT, true);

另一种不依赖于安装cURL的方法是使用带有custom HTTP stream contextfile_get_contents

代码语言:javascript
复制
$result = file_get_contents(
    'http://example.com/submit.php', 
    false, 
    stream_context_create(array(
        'http' => array(
            'method' => 'DELETE' 
        )
    ))
);

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

票数 47
EN

Stack Overflow用户

发布于 2010-01-28 19:08:59

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

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

  • CURLOPT_CUSTOMREQUEST:一个自定义的请求方法,用来代替"GET“或"HEAD”进行请求。这对于执行“HTTP”或其他更模糊的HTTP requests.
  • CURLOPT_HTTPGETTRUE将请求方法重置为GET.
  • CURLOPT_POSTTRUE来执行常规的HTTP POST.
  • CURLOPT_PUTTRUE to HTTP PUT a file非常有用。必须使用CURLOPT_INFILECURLOPT_INFILESIZE将文件设置为PUT

当然,curl_setopt不是您要使用的惟一函数;有关如何使用curl发送请求的示例,请参阅curl_exec的文档页面。

(是的,这个示例非常简单,它发送了一个GET请求--但是您应该能够从那里构建;-)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2153650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档