卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章16333本站已运行3317

探索 WordPress HTTP API:wp_remote_post 概述

在 WordPress HTTP API 的第一个系列中,我们了解了 wp_remote_get。具体来说,我们研究了 API 的以下几个方面:

  • 功能概览
  • 一个实际例子
  • 如何处理响应
  • 并理解函数的参数

我们将继续有关 WordPress HTTP API 的系列文章,但我们将把注意力转向 API 的第二种方法:wp_remote_post

在下一组文章中,我们将对该函数进行调查,以了解该函数提供什么以及它为何有用,如何将其实现到我们的工作中的实际示例,以及如何理解它函数以及来自该函数的响应。

话虽如此,让我们开始对该函数的调查。


远程请求:刷新

如果您到目前为止还没有跟进,我强烈建议您查看本系列中的第一篇文章,至少了解 GET 请求如何工作的基础知识。

老实说,POST 请求并没有那么不同。正如 GET 请求通常用于从服务器检索信息一样,POST 请求通常用于向服务器发送消息。

探索 WordPress HTTP API:wp_remote_post 概述

但事情是这样的:两种协议都能够发送数据和接收数据,但这里有一个关于我通常如何处理 GET 和 POST 请求的一般经验法则。

  • GET 请求通常用于从服务器检索信息,因此需要响应
  • POST 请求通常用于向服务器发送信息,尽管可能不会收到响应,但了解服务器是否正确接收并处理响应总是好的

在本系列这一部分的其余文章中,我们将了解如何处理这两种情况 - 即,如何处理没有给出响应的情况以及如何处理有响应的情况已给出


如何提出请求的摘要

现在,就服务器级别的请求而言(特别是在 PHP 中),它们通常是根据以下两个函数发出的(除非您使用的第三方库超出了本系列的范围) )。

虽然我们在第一篇文章中更详细地介绍了这些内容,但我将在这里对其进行总结。

  • file_get_contents 接受 URL 作为参数,并将返回请求的数据或失败时返回 false。这是一种为远程请求检索数据的相对常见的方法。
  • cURL 是一个完整的库(而不是函数),它为开发人员提供完整的配置选项,以便进行调整以满足他们的需求。关于这个库有很多东西值得学习。如果您是高级开发人员,一定要看看 cURL。

在大多数情况下,了解如何提出请求是很容易的,但是您对请求的提出方式进行调整的程度完全取决于您选择使用的选项 - 也就是说, file_get_contentscURL

当然,这更多的是执行请求的 PHP 方式,尽管我们可能会根据项目的性质在某些工作中实现这一点,但这并不一定涵盖 WordPress 的方式。

事实上,以上内容是在之前内容的基础上的一个简短的回顾。尽管如此,了解我们从哪里来、可以做什么以及我们要去哪里非常重要。


如何在 WordPress 中发出 POST 请求

如上所述,上面的注释与 PHP 的关系更为密切,因此让我们看一下 WordPress 上下文中的 POST 请求。

如果您从事为 WordPress 构建项目或在 WordPress 上构建产品的业务,那么了解可用的 API 非常重要,以确保您不会因升级而丢失某些类型的特性或功能到核心 WordPress 应用程序。

因此,就像我们查看 WordPress 编码标准来回顾编写基于 WordPress 的代码的最佳实践一样,我们现在将查看可用于使用最佳实践编写 POST 请求的 API。

为此,请输入 wp_remote_post

该函数接受两个参数:

  • 将向其发出请求的 URL
  • 有助于定制对服务器的请求的参数数组。

虽然参数数组在某种程度上超出了我们在本系列中要做的事情的范围,但了解可用的内容非常重要,特别是如果您要在本系列中做更高级的工作未来:

  • method 指的是请求使用哪个方法。考虑到我们 API 方法的性质,我们显然正在使用 POST
  • timeout 是您在放弃之前愿意等待请求处理的时间。默认值为五秒,但可以根据应用程序的性质减少或增加该值。
  • redirection 听起来像是请求完成后您将被重定向到的 URL,对吗?相反,它是放弃请求之前等待重定向的时间单位(以秒为单位)。
  • user-agent 允许我们控制随请求一起发送的用户代理。通常,这是 WordPress 和版本号,但它显然是可定制的。
  • blocking 简而言之,如果设置为 true 那么脚本将继续执行,直到服务器返回某些内容;否则,脚本将继续运行,而不会阻止应用程序的其余部分。当然,这是以可能永远得不到响应为代价的,但根据您构建的条件,这可能没问题。
  • compress 是在 WordPress 2.6 中引入的,允许您以压缩格式发送请求正文。这将超出我们未来文章的范围。
  • decompress 与 compress 类似,只不过它是在我们这边 - 如果收到压缩数据,这将允许我们在对其进行任何进一步的工作或处理之前解压缩内容。
  • sslverify 是在 WordPress 2.8 中引入的,对于需要检查 SSL 证书是否有效的场景非常有用。如果不是,则请求被拒绝;否则,你就可以走了。此选项也不属于这组文章的范围。

显然,有很多可用的东西。在接下来的几篇文章中,我希望更详细地研究其中的一些内容,但首先让我们看一个使用 API 函数的非常简单、实用的示例。


POST 请求

事情到这里应该已经很清楚了吧?使用 wp_remote_post 应该和使用 wp_remote_get 一样简单,所以从下一篇文章开始,我们将这样做。

在此之前,请确保您已阅读了到目前为止的所有文章,并请在评论中留下对此特定帖子的任何评论和/或问题。

接下来,我们开始工作!

卓越飞翔博客
上一篇: PHP开发中如何获取百度文心一言的随机句子?
下一篇: 在数据库管理系统中,B+树
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏