cURL返回一个空字符串

时间:2017-11-05 20:49:35

标签: php curl

我有以下代码返回一个空字符串(在变量$ result中)

$createdURL = "https://telenorcsms.com.pk:27677/corporate_sms2/api/sendsms.jsp?session_id=123&to=92315&text=test&mask=1"
curl_setopt($ch, CURLOPT_URL, "$createdURL");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml; charset=utf-8')) ;
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = curl_exec($ch);
echo var_dump($result);
if(curl_errno($ch)){
        echo 'Curl error: ' . curl_error($ch);
}
curl_close($ch);

当我运行浏览器地址栏第一行中给出的链接时,它返回以下XML。

<corpsms>
    <command>Submit_SM</command>
    <data>Error 102</data>
    <response>Error</response>
</corpsms>

请帮助我错在哪里。

3 个答案:

答案 0 :(得分:1)

你缺少curl_init()

因此,请使用此代码,您将从API获得响应:

<?php

$createdURL = "https://telenorcsms.com.pk:27677/corporate_sms2/api/sendsms.jsp?session_id=123&to=92315&text=test&mask=1";

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $createdURL);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml; charset=utf-8')) ;
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = curl_exec($ch);
echo var_dump($result);
if(curl_errno($ch)){
        echo 'Curl error: ' . curl_error($ch);
}
curl_close($ch);

您还应该检查是否需要发送Content-Tye: text/xml标题以及是否应该使用POSTGET

答案 1 :(得分:0)

您可以启用CURLOPT_VERBOSE选项:

curl_setopt($ch, CURLOPT_VERBOSE, true);

设置CURLOPT_VERBOSE时,输出将写入STDERR或使用CURLOPT_STDERR指定的文件。输出信息非常丰富。

您还可以使用tcpdump或wireshark来观看网络流量。

答案 2 :(得分:0)

这是由于下面的链接参数中给出的空间

$ createdURL =“https://telenorcsms.com.pk:27677/corporate_sms2/api/sendsms.jsp?session_id=123&to=92315&text= 测试和测试 &amp; mask = 我的面具 ” ;

删除空间后,它现在提供输出,但现在需要解决空间问题。

相关问题