PHP - 等待回复

时间:2015-10-13 12:40:18

标签: php web-services


我有一个简单的脚本,通过REST与一些服务器通信。 服务器架构有一些漏洞,我现在和其中一个打架。 当我发送一个请求来分配一些个人资料并且不等待响应并发送第二个请求时。 它基本上只是废弃第一个请求而只做第二个请求。

我的代码如下:

$this->assignProfile($token, $id, FIRST);   
$this->assignProfile($token, $id, SECOND);  

我的分配个人资料方法如下:

public function assignProfile($token, $organizationId, $profileId)
{
    //define enviroment and path
    $host = enviroment;     
    $path = "/admin/members/".$organizationId."/assigned-profiles";

    $data_string = '["'.$profileId.'"]';    

    // set up the curl resource
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $host.$path);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
    curl_setopt($ch, CURLOPT_HEADER, false);
    curl_setopt($ch, CURLOPT_VERBOSE, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);        
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
        'Content-Type: application/json',                                                                                
        'Authorization: Bearer '.$token.'',      
        'Content-Length: ' . strlen($data_string)                                                                       
    ));

    echo "<br>OK<br>";
    // execute the request      
    $output = curl_exec($ch);       
    curl_close($ch);    
} 

问题是,webservice不响应任何正文或其他内容,它只是响应代码200。 如何对此进行编码以等待200而不是继续第二次请求。

1 个答案:

答案 0 :(得分:0)

在assignProfile函数中,您可以检查状态代码并返回值。根据该值,您可以决定再次调用该函数。

  curl_exec($curl);
  $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
  curl_close($curl);

  if (200 == $statusCode)
        return true;
  else
        return false;