CURLOPT_CUSTOMREQUEST nasıl sıfırlanır

0 Cevap php

Ben, diğer şeyler arasında, bu gibi DELETE yöntemi kullanır, bir REST API kullanarak ediyorum:

DELETE /resources/whatever/items/123

Ben böyle cURL istimal PHP kullanarak bu erişmek için:

self::$curl = curl_init();
curl_setopt_array(self::$curl, array(
    CURLOPT_AUTOREFERER => true,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_RETURNTRANSFER => true,
));

Gördüğünüz gibi, benim cURL örneği statik ve sonraki çağrılar için yeniden olacaktır. "Yerleşik" isteği yöntemleri arasında geçiş yaparken, bu çalışıyor. Örneğin, benim get() yönteminde, ben böyle bir şey yapmak:

curl_setopt_array(self::$curl, array(
    CURLOPT_HTTPGET => true,
    CURLOPT_URL => self::BASE . 'whatever',
));

ve sonra çalıştırın curl_exec(). Açıkça olası bir önceki CURLOPT_POST silinir, CURLOPT_HTTPGET aracılığıyla istek yöntemini ayarlayarak.

Ancak, CURLOPT_CUSTOMREQUEST (örneğin DELETE) diğer herhangi bir yerleşik istek yöntemini geçersiz kılar ayar. Bu sürece ben DELETE şeyler istediğiniz gibi ince, ama örneğin, curl_setopt(self::$curl, CURLOPT_HTTPGET, true) özel yöntemini sıfırlama olmaz çağrısında; DELETE kullanılmaya devam edecek.

I CURLOPT_CUSTOMREQUEST null, false veya boş dize ayarı denedim, ama bu sadece böyle bir HTTP isteği neden olur

 /resources/whatever/items/123

yani yolu tarafından izlenen bir boşluk ve ardından yöntemi olarak boş bir dize ile.

Ben bunun yerine CURLOPT_CUSTOMREQUEST GET için ayarlamış olabilir ve herhangi bir sorun olmadan GET istekleri biliyoruz, ama ben sıfırlamak için bir şansınız var olup olmadığını merak CURLOPT_CUSTOMREQUEST.

0 Cevap