2017-04-07 100 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); 
相關問題