2017-09-27 3 views
0

그래서 내부 시스템을위한 무들 인증 플러그인을 만들고 있습니다. 업데이트 된 프로필 정보를 외부 API와 다시 동기화하는 플러그인의 경우 PUT 요청을해야합니다.cURL PUT이 본문에 데이터를 보내지 않습니다.

내가 겪고있는 문제는 요청의 일부가 전송된다는 것인데, 그 다음에 멈추고 결국에는 컬링 작업 시간이 만료됩니다. 요청을 만들기위한

내 코드 : 그것뿐만 아니라 다른 요청에 사용하고 잘 작동 될 때 의도 한대로이 코드의 대부분은 작동

$curl = curl_init(); 
$headers = array(); 
curl_setopt($curl, CURLOPT_PUT, 1); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $params); 
array_push($headers, 'Content-Type: application/json'); 
array_push($headers, 'Expect:'); 
array_push($headers, 'Connection: keep-alive'); 

if ($authtoken){ 
array_push($headers, 'Authorization: Bearer '.$authtoken); 
} 

curl_setopt($curl, CURLOPT_HTTPHEADER, $headers); 
curl_setopt($curl, CURLOPT_URL, $serverurl.'/'.$functionname); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($curl, CURLINFO_HEADER_OUT, true); 
curl_setopt($curl, CURLOPT_FAILONERROR,true); 
$result = curl_exec($curl); 

if (curl_error($curl)){ 
    curl_close($curl); 
    return false; 
} 

curl_close($curl); 
return $result; 

. 그러나 이것과 같은 PUT 요청의 경우, Fiddler에 따르면 2324 중 614 바이트와 같이 총 614 바이트를 전송합니다. 결국, 시간이 초과되고 오류가 발생합니다.

답변

0

그래서 수정했습니다. 이에

curl_setopt($curl, CURLOPT_PUT, 1); 

:

curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT'); 
솔루션이 줄을 변경했다