我正在尝试发送发布请求,这是正确的格式
https://domainname.com/dashboard/api?to={PHONE NUMBER}&from={SENDER ID}&message={TEXT}&email={YOUR EMAIL}&api_secret={API SECRET}
这是请求的外观:
https://domainname.com/dashboard/api?to=123456789&from=text&message=text&[email protected]&api_secret=123abc
所以我做了一个html表格:
<div class="body">
<form method="post" action="index.php">
<div id="form">
<div class="formInput">
<label>To:
<input type="text" name="to" id="to" />
</label>
</div>
<div class="formInput">
<label>From:
<input type="text" name="from" id="from" />
</label>
</div>
<div class="formInput">
<label>Message:
<input type="text" name="message" id="message" />
</label>
</div>
<div class="formInput">
<label>Email:
<input type="text" name="email" id="email" />
</label>
<div class="formInput">
<label>Api_Secret:
<input type="text" name="api_secret" id="api_secret" />
</label>
</div>
</div>
<input type="submit" value="Submit" />
</div>
</form>
和一个用curl处理数据的php文件:
<?php
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => 'https://domainname.com/dashboard/api',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => [
'to' => $_POST['to'],
'from' => $_POST['from'],
'message' => $_POST['message'],
'email' => $_POST['email'],
'api_secret' => $_POST['api_secret'],
],
]);
$response = curl_exec($ch);
curl_close($ch);
echo($response);
?>
但是它仍然不起作用。我对postbin发出了请求,查询看起来像这样:
123456789:
text:
text:
[email protected]:
123abc:
格式错误吗?我是否以错误的格式发送所有内容?非常感谢您的帮助,因为过去3天我一直在处理此问题。.
您的API似乎接受GET请求而不是POST,您的呼叫带有卷曲是POST。
因此,您的表单似乎还可以,它们具有API所需的所有变量。
现在我认为问题出在您的index.php文件(从表单中调用该文件),请尝试以下操作:
<?php
//checking for all variables filled in form
if (isset($_POST['to']) && isset($_POST['from']) && isset($_POST['message']) && isset($_POST['email']) && isset($_POST['api_secret'])){
//rebuild API call
$_ENDPOINT_CALL = "https://domainname.com/dashboard/api?to={$_POST['to']}&from={$_POST['from']}&message={$_POST['message']}&email={$_POST['email']}&api_secret={$_POST['api_secret']}";
//cURL GET request
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $_ENDPOINT_CALL
]);
$response = curl_exec($curl);
curl_close($curl);
//write response
echo $response;
}
?>