2014-12-31 60 views
0

我在我的应用程序中使用了卷曲。Curl无法在同一服务器上获得响应

我在DefaultController功能:

public function actionWebServices() 
{ 

    $data = array("account" => "1234", "dob" => "30051987", "site" => "mytestsite.com"); 
    $fields=''; 
    foreach ($data as $key => $value) 
     { 
      $fields .= $key . '/' . $value . '/'; 
     } 
    rtrim($fields, '&'); 

    $u='admin'; 
    $p='admin123'; 
    $url='localhost:83/Working-copy/mysite/ServiceTypeMaster/Test'; 

    $ch = curl_init($url); 
    curl_setopt($ch, CURLOPT_HEADER, 1); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_VERBOSE, 1); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);  
    curl_setopt($ch, CURLINFO_HEADER_OUT, 1); 
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 
    curl_setopt($ch, CURLOPT_USERPWD, $u.':'.$p); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_POST, count($data)); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 

    session_write_close(); 

    $result = curl_exec($ch); 

    curl_close($ch); 

    session_start(); 

    return $result; 

} 

serviceTypeMasterController

public function actionTest() 
{ 
    echo "test"; 
} 

我打电话卷曲URL的localhost URL。但卷曲并没有给出任何回应。它只给我Response Doesn't contain any data

出了什么问题?

回答

0

通常,如果页面/服务不存在,则返回响应。你确定你在端口83(而不是默认的80)上运行你的服务器,并且url解析为你的actionTest(而不是测试)方法吗?

+0

是的,我在端口83上运行。与actionRules有问题。我的方法是在认证的用户区。当我把actionTest公开的时候调用。但我不知道如何允许经过身份验证的用户访问curl中的受保护方法? – Dhara

相关问题