将数据从表单发送到 http post 请求但格式错误?
Sending data from a form to a http post request but wrong format?
我正在尝试发送 post 请求,这是正确的格式
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=email@email.com&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>
还有一个 php 文件用 curl 处理数据:
<?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@email.com:
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;
}
?>
我正在尝试发送 post 请求,这是正确的格式
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=email@email.com&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>
还有一个 php 文件用 curl 处理数据:
<?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@email.com:
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;
}
?>