2014-07-14 20 views
2

我正在Web应用程序中实施SMS网关API。使用这个下面的PHP代码:SMS API URL未响应

<?php 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, 'apiurl'); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     $output = curl_exec($ch); 
     curl_close($ch); 
    ?> 

但问题是,当我从直播服务器调用它,它没有响应。但它工作正常,并在本地服务器上以xml格式提供响应。

+1

检查您的防火墙设置。生产服务器可能有过滤...检查你的SMS提供商,他们的API也可能有IP过滤。在您的生产服务器上,尝试在不使用PHP的情况下调用URL。在WAMP env上使用IE或Lynx,如果你在LAMP环境中。 –

+0

是'apiurl'正在使用的实际URL还是代码的占位符? – GordonM

+0

同时检查CURL PHP扩展是否启用。同时检查'curl_error($ ch)' –

回答

1

确保你安装PHP卷曲在现场服务器

对于Ubuntu的:命令和apt-get安装PHP5卷曲

<?php 
     // create curl resource 
     $ch = curl_init(); 

     // set url 
     curl_setopt($ch, CURLOPT_URL, "example.com"); 

     //return the transfer as a string 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

     // $output contains the output string 
     $output = curl_exec($ch); 

     // close curl resource to free up system resources 
     curl_close($ch);  
?> 
+0

我使用phpinfo()进行了检查。它是卷曲启用。 –

0

我的问题得到解决。我的下面的代码是正确的,但我的虚拟主机服务器阻止了 API端口。我告诉我的托管服务提供商解除阻止IP和端口,他们这样做,现在它正在工作。

<?php 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, 'apiurl'); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $output = curl_exec($ch); 
    curl_close($ch); 
?>