【问题标题】:Get data from a form and send it as a HTTP Request从表单中获取数据并将其作为 HTTP 请求发送
【发布时间】:2019-06-16 20:21:34
【问题描述】:

好的,我很确定这很容易做到,但我就是做不到。 我不知道如何实际谷歌或形成这个问题,所以我会尽可能多地解释。 我正在尝试使用页面中的 API,文档说 HTTP 请求应如下所示:

https://example.com/dashboard/api
?to={PHONE NUMBER}&from={SENDER ID}&message={TEXT}
&email={YOUR EMAIL}&api_secret={API SECRET}

我的目标是使用这些参数并构建一个基本的 html 表单,它要求输入 3 个不同的参数。

“to”、“from”和“message”

然后将表单中的信息汇总到 http 请求中。

在文档中,他们有一个 JSON 响应示例,如下所示:

{
  "to":"4928400837",
  "status":"0",
  "status_info":"Message sent",
  "credits_spent":"1",
  "remaining_credits":43,
  "id":"username123"
}

不确定它是否有帮助,但仅此而已。我不知道如何开始。 非常感谢任何帮助!

【问题讨论】:

  • 您是否尝试在服务器上执行此操作(因为您已将其标记为 PHP)?
  • 尝试在我的网络服务器上执行此操作。
  • @Alex:有什么问题吗?如何制作表格?如何发送表格?如何从 URL 中读取值?
  • 抱歉没有澄清,我的问题或需要是:我需要制作一个表单,从用户那里获取这些参数并将它们作为好友请求发送。

标签: php html http


【解决方案1】:

您可以使用 HTML 创建一个表单,将其提供给客户端,并在提交到您的 PHP 后端时发送一个 POST 请求。

一个简单的例子可能如下所示:

<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>
            <input type="submit" value="Submit" /> 
            <input type="reset" value="Clear Form" /> 
        </div> 
    </form>

然后,您的 PHP 代码可以访问 $_POST 数组中的所有表单变量,以使用用户表单中的 $_POST 参数将 GET 请求发送到 API。

<?php
$url = 'https://example.com/dashboard/api';
$r = new HttpRequest($url, HttpRequest::METH_GET);
// build a URL query string with the parameters passed from the form
$r->addQueryData(array('to' => $_POST['to'],
                       'from' => $_POST['from'],
                       'email' => $email,
                       'api_secret' => $api_secret));
// send the HTTP GET request and display the JSON response
try {
    $r->send();
    if ($r->getResponseCode() == 200) {
        echo $r->getResponseBody();
    }
} catch (HttpException $ex) {
    echo $ex;
}
?>

在这个简单的示例中,当您点击 API 时,index.php 将有效地将用户的 POST 数据转换为 GET 数据。实际上,您可以将用户重定向到您传递 API 的 JSON 响应的不同页面,以便对其进行格式化。我不确定您是否打算将 $email 加入用户表单,并且我假设 API 机密必须存储在服务器端的某个地方。

【讨论】:

  • 这正是我想要的,遗憾的是,当我按下 sumbit 时出现错误,example.com 目前无法处理此请求。 HTTP 错误 500
  • 我得到的错误是“PHP 致命错误:找不到类 'HttpRequest'”有没有可能来自 php 版本?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
  • 2011-12-21
  • 1970-01-01
  • 1970-01-01
  • 2020-10-05
相关资源
最近更新 更多