为了账号安全,请及时绑定邮箱和手机立即绑定

将数据从表单发送到 http post 请求但格式错误?

将数据从表单发送到 http post 请求但格式错误?

PHP
白衣染霜花 2022-10-14 16:15:21
查看完整描述

2 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

我正在尝试发送发布请求,这是正确的格式


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>

还有一个用 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@email.com:

123abc:

是不是格式不对?我是否以错误的格式发送所有内容?非常感谢您的帮助,因为我在过去 3 天里一直在搞砸这个..


查看完整回答
反对 回复 2022-10-14
?
湖上湖

TA贡献2003条经验 获得超2个赞

您的API似乎接受 GET 请求而不是 POST,您使用 curl的调用是 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;

}

?>


查看完整回答
反对 回复 2022-10-14
  • 2 回答
  • 0 关注
  • 165 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号