2017-04-07 102 views
0

我想用curl(sipgate voip帐户)替换file_get_contents,但每个tryout都不起作用。curl而不是file_get_contents与上下文

版本MIT的file_get_contents:

$requestParameter = array(
    'RemoteUri' => sprintf('sip:%[email protected]', $remoteUri), 
    'LocalUri' => sprintf('sip:%[email protected]', $localUri), 
    'TOS' => 'voice' 
); 
    $auth = base64_encode(sprintf('%s:%s', $username, $password)); 
    $request = xmlrpc_encode_request("samurai.SessionInitiate", $requestParameter); 
    $context = stream_context_create(
    array('http' => array(
     'method' => "POST", 
     'header' => sprintf("Content-Type: text/xml\r\nAuthorization: Basic %s)", $auth), 
     'content' => $request 
    )) 
); 
    file_get_contents("https://api.sipgate.net/RPC2", false, $context); 

最新选拔赛,卷曲

$requestParameter = array(
    'RemoteUri' => sprintf('sip:%[email protected]', $remoteUri), 
    'LocalUri' => sprintf('sip:%[email protected]', $localUri), 
    'TOS' => 'voice' 
); 
    $auth = base64_encode(sprintf('%s:%s', $username, $password)); 
    $request = xmlrpc_encode_request("samurai.SessionInitiate", $requestParameter); 
    $context = stream_context_create(
    array('http' => array(
     'method' => "POST", 
     'header' => sprintf("Content-Type: text/xml\r\nAuthorization: Basic %s)", $auth), 
     'content' => $request 
    )) 
); 
    $url = 'https://api.sipgate.net/RPC2'; 
    $curl = curl_init($url); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($curl, CURLOPT_POST, 1); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, $context); 
    curl_exec($curl); 
    curl_close($curl); 

$requestParameter = array(
    'RemoteUri' => sprintf('sip:%[email protected]', $remoteUri), 
    'LocalUri' => sprintf('sip:%[email protected]', $localUri), 
    'TOS' => 'voice' 
); 
    $auth = base64_encode(sprintf('%s:%s', $username, $password)); 
    $request = xmlrpc_encode_request("samurai.SessionInitiate", $requestParameter); 

    $url = 'https://api.sipgate.net/RPC2'; 
    $curl = curl_init($url); 
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
    curl_setopt($curl, CURLOPT_USERPWD, $auth); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($curl, CURLOPT_POST, 1); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, $request); 
    curl_exec($curl); 
    curl_close($curl); 

有一个人对我的想法? THX,SPF

+0

什么是PHP的错误日志? – mkaatman

+0

'CURLOPT_POSTFIELDS'接受URL查询格式。请参阅http://stackoverflow.com/questions/5224790/curl-post-format-for-curlopt-postfields。 –

+0

不幸的是,我的错误日志是空的。也许URL的日志有条目,但我不知道。 –

回答

0

以上命名的误差在两个版本

$requestParameter = array(
'RemoteUri' => sprintf('sip:%[email protected]', $remoteUri), 
'LocalUri' => sprintf('sip:%[email protected]', $localUri), 
'TOS' => 'voice' 
); 
$auth = base64_encode(sprintf('%s:%s', $username, $password)); 
$request = xmlrpc_encode_request("samurai.SessionInitiate", $requestParameter); 
$context = stream_context_create(
array('http' => array(
    'method' => "POST", 
    'header' => sprintf("Content-Type: text/xml\r\nAuthorization: Basic %s)", $auth), 
    'content' => $request 
    )) 
); 
$data = http_build_query($context); 
$url = 'https://api.sipgate.net/RPC2'; 
$curl = curl_init($url); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_POST, 1); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); 
curl_exec($curl); 
curl_close($curl); 

$requestParameter = array(
'RemoteUri' => sprintf('sip:%[email protected]', $remoteUri), 
'LocalUri' => sprintf('sip:%[email protected]', $localUri), 
'TOS' => 'voice' 
); 
$auth = base64_encode(sprintf('%s:%s', $username, $password)); 
$request = xmlrpc_encode_request("samurai.SessionInitiate", $requestParameter); 

$data = http_build_query($request); 
$url = 'https://api.sipgate.net/RPC2'; 
$curl = curl_init($url); 
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
curl_setopt($curl, CURLOPT_USERPWD, $auth); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_POST, 1); 
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); 
curl_exec($curl); 
curl_close($curl); 
相关问题