How to reset CURLOPT_CUSTOMREQUEST

后端 未结 3 1846
被撕碎了的回忆
被撕碎了的回忆 2021-01-11 12:12

I’m using a REST API which, among other things, uses the DELETE method like this:

DELETE /resources/whatever/items/123

To acce

相关标签:
3条回答
  • 2021-01-11 12:31

    (Shrug ...) And what I wound up doing in my API is to simply, "set it every time." My POST routine simply sets a custom-header of "POST", and so on. Works great.

    I found that, once you do set a custom-header, it "sticks." Future calls which then attempt to do ordinary GET, POST, PUT start to fail. I experimented with the suggestions listed earlier in this post (with PHP-7), and didn't very-quickly meet with success ... so: "to heck with it, this isn't elegant, but it works."

    0 讨论(0)
  • 2021-01-11 12:40

    This is actually a bug in PHP, since the original documentation states the following:

    Restore to the internal default by setting this to NULL.

    Unfortunately, as you can see from the source code, the option value gets cast to a string before it's passed to the underlying library.

    Solution

    I've written a pull request that addresses the issue and allows for NULL to be passed for the CURLOPT_CUSTOMREQUEST option value.

    The above patch will take some time to get merged into the project, so until then you would have to explicitly set the method yourself once you start using this option.

    Update

    The fix has been applied to 5.5.11 and 5.6.0 (beta1).

    0 讨论(0)
  • 2021-01-11 12:41

    Set CURLOPT_CUSTOMREQUEST to NULL and CURLOPT_HTTPGET to TRUE to reset back to an ordinary GET.

    0 讨论(0)
提交回复
热议问题