2016-03-25 4 views
0

私のコードでは、複数の呼び出し、GET、POST、PUTを行うために同じ接続を再利用しています。 PUTの後、私はGETをしたいが、それはまだ古い "PUT"メソッドを保持しています。私のコードの サンプル:php curl CURLOPT_HTTPGETはメソッドをGETに戻しません

第一コール:

curl_setopt($this->jira, CURLOPT_URL, $url); 
curl_setopt($this->jira, CURLOPT_CUSTOMREQUEST, "PUT"); 
curl_setopt($this->jira, CURLOPT_POSTFIELDS, json_encode($jiraput)); 
$response = curl_exec($this->jira); 

第二コール:

curl_setopt($this->jira, CURLOPT_URL, $url); 
curl_setopt($this->jira, CURLOPT_HTTPGET, true); 
curl_setopt($this->jira, CURLOPT_VERBOSE, true); 
$response = curl_exec($this->jira); 

冗長ログは、私を与える:

回避策として
* Found bundle for host domain.com: 0x227b490 
* Re-using existing connection! (#3) with host domain.com 
* Connected to url.domain.com (xx.xx.xx.xx) port 443 (#3) 
> PUT /jira/rest/api/2/issue/DAM-188/editmeta HTTP/1.1 

、私が変更しました2回目の電話:

curl_setopt($this->jira, CURLOPT_URL, $url); 
curl_setopt($this->jira, CURLOPT_CUSTOMREQUEST, "GET"); 
curl_setopt($this->jira, CURLOPT_HTTPGET, true); 
$response = curl_exec($this->jira); 

でも、それは意味をなさないので、CURLOPT_HTTPGETはこのトリックを完了しているはずです。

+0

'trueにCURLOPT_HTTPGET'を設定するには、' CURLOPT_CUSTOMREQUEST'の内容はリセットされません。空の文字列に設定し、HTTPGETをtrueに設定することができます。 – Reversal

答えて

0

libcurl/curlは、変更したプロパティの状態を保存します。 だけでGETリクエストの前に、またはPOSTの後にこれを追加します。

curl_setopt($this->jira, CURLOPT_CUSTOMREQUEST, NULL); 
関連する問題