日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php curl curlopt_customrequest,php – 如何重置CURLOPT_CUSTOMREQUEST

發(fā)布時間:2023/12/8 php 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php curl curlopt_customrequest,php – 如何重置CURLOPT_CUSTOMREQUEST 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我正在使用REST API,除其他外,它使用DELETE方法,如下所示:

DELETE /resources/whatever/items/123

要使用PHP訪問它,我使用這樣的cURL:

self::$curl = curl_init();

curl_setopt_array(self::$curl, array(

CURLOPT_AUTOREFERER => true,

CURLOPT_FOLLOWLOCATION => true,

CURLOPT_RETURNTRANSFER => true,

));

如您所見,我的cURL實例是靜態(tài)的,將在后續(xù)調(diào)用中重用.在“內(nèi)置”請求方法之間切換時,這可以正常工作.例如,在我的get()方法中,我執(zhí)行以下操作:

curl_setopt_array(self::$curl, array(

CURLOPT_HTTPGET => true,

CURLOPT_URL => self::BASE . 'whatever',

));

然后運行curl_exec().通過CURLOPT_HTTPGET顯式設(shè)置請求方法,將清除可能的先前CURLOPT_POST.

但是,設(shè)置CURLOPT_CUSTOMREQUEST(例如,設(shè)置為DELETE)將覆蓋任何其他內(nèi)置請求方法.只要我想刪除東西,這很好,但是調(diào)用例如curl_setopt(self :: $curl,CURLOPT_HTTPGET,true)將不會重置自定義方法;仍將使用DELETE.

我已經(jīng)嘗試將CURLOPT_CUSTOMREQUEST設(shè)置為null,false或空字符串,但這只會導(dǎo)致HTTP請求

/resources/whatever/items/123

即使用空字符串作為方法,后跟空格,然后是路徑.

我知道我可以將CURLOPT_CUSTOMREQUEST設(shè)置為GET而不做任何問題的GET請求,但我想知道是否有可能重置CURLOPT_CUSTOMREQUEST.

解決方法:

這實際上是PHP中的a bug,因為原始的documentation聲明如下:

Restore to the internal default by setting this to NULL.

不幸的是,正如您在the source code中所看到的,選項值在傳遞給底層庫之前會被轉(zhuǎn)換為字符串.

我編寫了一個解決該問題的pull request,并允許為CURLOPT_CUSTOMREQUEST選項值傳遞NULL.

上面的補丁需要一些時間才能合并到項目中,因此在您開始使用此選項之前,您必須自己顯式設(shè)置該方法.

更新

該修復(fù)程序已應(yīng)用于5.5.11和5.6.0(beta1).

標簽:php,rest,curl

來源: https://codeday.me/bug/20191007/1868894.html

總結(jié)

以上是生活随笔為你收集整理的php curl curlopt_customrequest,php – 如何重置CURLOPT_CUSTOMREQUEST的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。