【问题标题】:How to construct API URL using POST method如何使用 POST 方法构造 API URL
【发布时间】:2020-10-23 20:18:19
【问题描述】:

我们使用 Lansweeper 作为我们的帮助台。 Lansweeper 有一个提交工单的 API。它需要 3 或 4 个值。我在我们的 Intranet 站点上有一个页面供用户输入所需的信息。根据 API 文档,它必须是 POST 请求。这是表格

<form action="http://lansweeper:81/api.aspx" method="post">
            
                <input type ="hidden" name="Action" value="AddTicket">
                <input type="hidden" name="Key" value="80aac06c-43c1-498a-9e0f-d477e398b13b">
                
                <label for="username">Username:</label>
                <br>
                <input type="text" id="username" name="Username">
                <br>
                <label for="subject">Subject:</label>
                <br>
                <input type="text" id="subject" name="Subject">
                <br>
                <label for="email">Email Address:</label>
                <br>
                <input type="text" id="emailaddr" name="Email">
                <br>
                <br>
                <label for="Description">Please enter a short description of your issue:</label>
                <br>
                <textarea name="Description" rows="10" cols="30"></textarea>
                <br>
                <br>
                <input type="submit" value="Submit Ticket" name="submit">
</form>

如果我使用 GET 作为方法,我可以看到 URL 如下所示,并且我从浏览器 http://lansweeper:81/api.aspx?Action=AddTicket&Key=80aac06c-43c1- 收到 500 内部服务器错误498a-9e0f-d477e398b13b&Username=test&Subject=test&Email=test@test.com&Description=test&submit=Submit+Ticket 但如果我使用 POST 它只会返回 http://lansweeper:81/api.aspx 和 500 内部服务器错误。

以下是 API 文档中的示例 URL:http://YourServerName:81/api.aspx?Action=AddTicket&Key=123456789&Subject=Example&Description=Example&Type=Hardware&Priority=High&Username=MyDomain\Earl&AgentUsername=MyDomain\John&Team=Information%20Technology

由于我必须使用 POST,我是否需要将表单操作更改为不同的 php 文件,该文件执行一些逻辑以将值发送到 API?

【问题讨论】:

  • HTML 表单会自动将所有输入字段作为参数发送到服务器脚本。我认为您需要阅读有关使用 PHP 处理表单的教程。
  • 500 内部错误也意味着一个错误。

标签: php html api


【解决方案1】:

正如 Barmar 所说,表单提交功能会自动将表单值传递给操作。因此,您可以将表单操作设置为 Lansweeper 端点,并在表单上设置一个按钮 type=“submit”。单击提交时,会将表单值传递给 Lansweeper 处理。

【讨论】:

  • 嗨,我尝试将 lansweeper 端点作为表单操作,但这不起作用。我添加了代码以显示我在做什么。您还有其他建议可以补充吗?
  • 在将您的 get 请求返回的错误与文档进行比较时,看起来参数不同。您是否有可能没有发送正确的字段?如果不是这种情况,我会认为这个动作可能是不正确的。我假设 Lansweeper 会为提交提供处理程序,但也许您必须创建自己的处理程序?
  • 参数有什么不同?我一直在查看文档,看来我使用了正确的字段。在我的示例中,我只使用必填字段。 Lansweeper,至少在文档页面上没有提供处理程序。不太确定那是什么。但我发现一些 api 测试站点和基本的 http:lansweeper:81/api.aspx 不起作用。 DNS 错误:没有这样的主机。我通过电子邮件发送了 lansweeper 支持,因为我怀疑其他地方可能存在问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-23
  • 1970-01-01
相关资源
最近更新 更多