错误的 http 请求错误
Bad http request error
我正在尝试动态调用 API 参数。下面是代码
<?php
$apikey="<API_KEY>";
$senderid="TESTIN";
$channel=2;
$dcs=0;
$flashsms=0;
$number="9171276664,678785612";
$text="Hello Testing message dynamically";
$route="11";
$ch=curl_init("https://www.smsgatewayhub.com/api/mt/SendSMS?APIKey=".$apikey.'&senderid='.$senderid.'&channel='.$channel.'&DCS='.$dcs.'&flashsms='.$flashsms.'&number='.$number.'&text='.$text.'&route='.$route);
?>
正在抛出错误的 http 请求错误!!!
并非所有符号都允许出现在 url 中(例如:';'、'/'、'?'、':'、'@'、'='、'&' 和 space), 所以你应该为你的参数使用 urlencode 函数。
<?php
...
$number=urlencode("xxxxxxxxxxxx,xxxxxxxxxxxx");
$text=urlencode("Hello Testing message dynamically");
...
$ch=curl_init("https://www.smsgatewayhub.com/api/mt/SendSMS?APIKey=".$apikey.'&senderid='.$senderid.'&channel='.$channel.'&DCS='.$dcs.'&flashsms='.$flashsms.'&number='.$number.'&text='.$text.'&route='.$route);
?>
您需要对每个字符进行 urlencode,您也可以使用 http 构建查询使其更具可读性:如果还有错误,您可以发送错误吗?
<?php
$params = Array(
'apikey' => "xx",
'senderid' => "TESTIN",
'channel' => 2,
'dcs' => 0,
'flashsms' => 0,
'number' => "1234,4567",
'text' => "Hello Testing message dynamically",
'route' => "11"
) ;
$url = 'https://www.smsgatewayhub.com/api/mt/SendSMS?'.http_build_query($params) ;
$ch=curl_init($url) ;
?>
我正在尝试动态调用 API 参数。下面是代码
<?php
$apikey="<API_KEY>";
$senderid="TESTIN";
$channel=2;
$dcs=0;
$flashsms=0;
$number="9171276664,678785612";
$text="Hello Testing message dynamically";
$route="11";
$ch=curl_init("https://www.smsgatewayhub.com/api/mt/SendSMS?APIKey=".$apikey.'&senderid='.$senderid.'&channel='.$channel.'&DCS='.$dcs.'&flashsms='.$flashsms.'&number='.$number.'&text='.$text.'&route='.$route);
?>
正在抛出错误的 http 请求错误!!!
并非所有符号都允许出现在 url 中(例如:';'、'/'、'?'、':'、'@'、'='、'&' 和 space), 所以你应该为你的参数使用 urlencode 函数。
<?php
...
$number=urlencode("xxxxxxxxxxxx,xxxxxxxxxxxx");
$text=urlencode("Hello Testing message dynamically");
...
$ch=curl_init("https://www.smsgatewayhub.com/api/mt/SendSMS?APIKey=".$apikey.'&senderid='.$senderid.'&channel='.$channel.'&DCS='.$dcs.'&flashsms='.$flashsms.'&number='.$number.'&text='.$text.'&route='.$route);
?>
您需要对每个字符进行 urlencode,您也可以使用 http 构建查询使其更具可读性:如果还有错误,您可以发送错误吗?
<?php
$params = Array(
'apikey' => "xx",
'senderid' => "TESTIN",
'channel' => 2,
'dcs' => 0,
'flashsms' => 0,
'number' => "1234,4567",
'text' => "Hello Testing message dynamically",
'route' => "11"
) ;
$url = 'https://www.smsgatewayhub.com/api/mt/SendSMS?'.http_build_query($params) ;
$ch=curl_init($url) ;
?>