我有以下代码返回一个空字符串(在变量$ 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>
请帮助我错在哪里。
答案 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
标题以及是否应该使用POST
或GET
。
答案 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 = 我的面具 ” ;
删除空间后,它现在提供输出,但现在需要解决空间问题。