Dalam siri pertama API HTTP WordPress ini, kami mempelajari tentang wp_remote_get
. Secara khusus, kami melihat aspek API berikut: wp_remote_get
。具体来说,我们研究了 API 的以下几个方面:
我们将继续有关 WordPress HTTP API 的系列文章,但我们将把注意力转向 API 的第二种方法:wp_remote_post
。
在下一组文章中,我们将对该函数进行调查,以了解该函数提供什么以及它为何有用,如何将其实现到我们的工作中的实际示例,以及如何理解它函数以及来自该函数的响应。
话虽如此,让我们开始对该函数的调查。
如果您到目前为止还没有跟进,我强烈建议您查看本系列中的第一篇文章,至少了解 GET
请求如何工作的基础知识。
老实说,POST
请求并没有那么不同。正如 GET
请求通常用于从服务器检索信息一样,POST
请求通常用于向服务器发送消息。
但事情是这样的:两种协议都能够发送数据和接收数据,但这里有一个关于我通常如何处理 GET 和 POST 请求的一般经验法则。
GET
请求通常用于从服务器检索信息,因此需要响应POST
请求通常用于向服务器发送信息,尽管可能不会收到响应,但了解服务器是否正确接收并处理响应总是好的在本系列这一部分的其余文章中,我们将了解如何处理这两种情况 - 即,如何处理没有给出响应的情况以及如何处理有响应的情况已给出。
现在,就服务器级别的请求而言(特别是在 PHP 中),它们通常是根据以下两个函数发出的(除非您使用的第三方库超出了本系列的范围) )。
虽然我们在第一篇文章中更详细地介绍了这些内容,但我将在这里对其进行总结。
file_get_contents
接受 URL 作为参数,并将返回请求的数据或失败时返回 false。这是一种为远程请求检索数据的相对常见的方法。cURL
是一个完整的库(而不是函数),它为开发人员提供完整的配置选项,以便进行调整以满足他们的需求。关于这个库有很多东西值得学习。如果您是高级开发人员,一定要看看 cURL。在大多数情况下,了解如何提出请求是很容易的,但是您对请求的提出方式进行调整的程度完全取决于您选择使用的选项 - 也就是说, file_get_contents
或 cURL
。
当然,这更多的是执行请求的 PHP 方式,尽管我们可能会根据项目的性质在某些工作中实现这一点,但这并不一定涵盖 WordPress 的方式。
事实上,以上内容是在之前内容的基础上的一个简短的回顾。尽管如此,了解我们从哪里来、可以做什么以及我们要去哪里非常重要。
如何在 WordPress 中发出 POST
请求如上所述,上面的注释与 PHP 的关系更为密切,因此让我们看一下 WordPress 上下文中的 POST
请求。
如果您从事为 WordPress 构建项目或在 WordPress 上构建产品的业务,那么了解可用的 API 非常重要,以确保您不会因升级而丢失某些类型的特性或功能到核心 WordPress 应用程序。
因此,就像我们查看 WordPress 编码标准来回顾编写基于 WordPress 的代码的最佳实践一样,我们现在将查看可用于使用最佳实践编写 POST
请求的 API。
为此,请输入 wp_remote_post
Gambaran Keseluruhan Ciri
Kami akan meneruskan siri artikel kami tentang API HTTP WordPress, tetapi kami akan mengalihkan perhatian kami kepada kaedah kedua API:
wp_remote_post
. 🎜
🎜Dalam set artikel seterusnya, kami akan menyiasat fungsi ini untuk memahami perkara yang disediakan dan sebab ia berguna, contoh praktikal tentang cara melaksanakannya ke dalam kerja kami, dan cara memahami fungsinya serta tindak balas daripadanya. 🎜
🎜Setelah berkata demikian, mari kita mulakan penyiasatan fungsi ini. 🎜
GET
berfungsi. 🎜
🎜Sejujurnya, permintaan POST
tidak begitu berbeza. Sama seperti permintaan GET
biasanya digunakan untuk mendapatkan maklumat daripada pelayan, permintaan POST
biasanya digunakan untuk menghantar mesej kepada pelayan. 🎜
🎜🎜
🎜Tetapi inilah perkaranya: kedua-dua protokol mampu menghantar dan menerima data, tetapi berikut ialah peraturan umum tentang cara saya biasanya mengendalikan permintaan GET dan POST. 🎜
🎜
🎜
Permintaan GET
biasanya digunakan untuk mendapatkan semula maklumat daripada pelayan dan oleh itu memerlukan respons 🎜
🎜
Permintaan POST
biasanya digunakan untuk hantar maklumat kepada pelayan Walaupun respons mungkin tidak diterima, adalah baik untuk mengetahui sama ada pelayan menerima dan memproses respons dengan betul 🎜.
🎜
🎜Dalam artikel selebihnya dalam bahagian siri ini, kita akan melihat cara mengendalikan kedua-dua situasi - iaitu, cara mengendalikan situasi di mana tiada respons diberikan dan cara mengendalikan situasi di mana respons diberikan. 🎜
file_get_contents
menerima URL sebagai parameter dan akan mengembalikan data yang diminta atau palsu apabila gagal. Ini adalah cara yang agak biasa untuk mendapatkan semula data untuk permintaan jauh. 🎜
🎜
cURL
ialah perpustakaan lengkap (bukannya fungsi) yang menyediakan pembangun dengan pilihan konfigurasi lengkap untuk dilaraskan mengikut keperluan mereka. Banyak yang perlu dipelajari tentang perpustakaan ini. Jika anda seorang pembangun lanjutan, pasti lihat cURL. 🎜
🎜
🎜Dalam kebanyakan kes, mudah untuk mengetahui cara membuat permintaan, tetapi sejauh mana anda melaraskan cara permintaan dibuat bergantung sepenuhnya pada pilihan yang anda pilih untuk digunakan - iaitu, file_get_contents
atau cURL. 🎜
🎜Sudah tentu, ini lebih kepada cara PHP untuk melakukan permintaan, dan walaupun kami mungkin melaksanakan ini dalam beberapa kerja bergantung pada sifat projek, ini tidak semestinya meliputi cara WordPress. 🎜
🎜Sebenarnya kandungan di atas adalah ulasan ringkas berdasarkan kandungan sebelum ini. Walau bagaimanapun, adalah penting untuk memahami dari mana kita berasal, apa yang boleh kita lakukan, dan ke mana kita akan pergi. 🎜
Cara membuat permintaan POST
dalam WordPressPOST
dalam konteks WordPress. 🎜
🎜Jika anda berada dalam perniagaan membina projek untuk WordPress atau membina produk di WordPress, adalah penting untuk memahami API yang tersedia untuk memastikan anda tidak kehilangan jenis ciri atau fungsi tertentu dengan menaik taraf kepada aplikasi teras WordPress. 🎜
🎜Jadi, sama seperti kami melihat Standard Pengekodan WordPress untuk menyemak amalan terbaik untuk menulis kod berasaskan WordPress, kami kini akan melihat API yang tersedia untuk menulis permintaan POST
menggunakan amalan terbaik. 🎜
🎜Untuk melakukan ini, masukkan wp_remote_post
. 🎜
🎜Fungsi ini menerima dua parameter: 🎜
🎜
🎜URL ke mana permintaan akan dibuat🎜
🎜Susun atur parameter yang membantu menyesuaikan permintaan ke pelayan. 🎜
🎜
🎜Walaupun tatasusunan parameter agak di luar skop perkara yang akan kami lakukan dalam siri ini, adalah penting untuk memahami perkara yang tersedia, terutamanya jika anda akan melakukan kerja yang lebih lanjut dalam siri ini pada masa hadapan: 🎜kaedah
merujuk kepada kaedah yang diminta. Memandangkan sifat kaedah API kami, kami jelas menggunakan POST
. 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
masa tamat
ialah berapa lama anda sanggup menunggu untuk permintaan diproses sebelum berputus asa. Nilai lalai ialah lima saat, tetapi nilai ini boleh dikurangkan atau ditingkatkan bergantung pada sifat aplikasi.
redirection
berbunyi seperti URL yang anda akan ubah hala selepas permintaan selesai, bukan? Sebaliknya, ia adalah unit masa (dalam saat) untuk menunggu ubah hala sebelum melepaskan permintaan.
user-agent
membenarkan kami mengawal ejen pengguna yang dihantar bersama permintaan. Biasanya, ini adalah WordPress dan nombor versi, tetapi ia jelas boleh disesuaikan.
blocking
Ringkasnya, jika ditetapkan kepada benar maka skrip akan terus melaksanakan sehingga pelayan mengembalikan sesuatu jika tidak, skrip akan terus berjalan tanpa menyekat seluruh aplikasi. Sudah tentu, ini melibatkan kos yang mungkin tidak pernah mendapat respons, tetapi bergantung pada keadaan yang anda sedang bina, ini mungkin baik.
compress
telah diperkenalkan dalam WordPress 2.6 dan membolehkan anda menghantar isi permintaan dalam format termampat. Ini akan berada di luar skop artikel kami yang akan datang.
nyahmampat
adalah serupa dengan mampat, kecuali ia berada di pihak kami - jika data mampat diterima, ini akan membolehkan kami menyahmampat kandungan sebelum melakukan apa-apa kerja atau pemprosesan selanjutnya.
🎜
sslverify
telah diperkenalkan dalam WordPress 2.8 dan berguna untuk senario di mana anda perlu menyemak sama ada sijil SSL adalah sah. Jika tidak, permintaan itu ditolak jika tidak, anda boleh pergi. Pilihan ini juga di luar skop set artikel ini.
🎜Sudah tentu, terdapat banyak yang tersedia. Dalam beberapa artikel seterusnya saya berharap untuk melihat beberapa perkara ini dengan lebih terperinci, tetapi mula-mula mari kita lihat contoh yang sangat mudah dan praktikal menggunakan fungsi API. 🎜
POST
wp_remote_post
sepatutnya semudah menggunakan wp_remote_get
, jadi bermula dengan artikel seterusnya, kami akan melakukannya. 🎜
🎜Sebelum itu, sila pastikan anda telah membaca semua artikel setakat ini, dan sila tinggalkan sebarang komen dan/atau soalan tentang siaran khusus ini dalam ulasan. 🎜
🎜Seterusnya, mari kita mula bekerja! 🎜Atas ialah kandungan terperinci Terokai API HTTP WordPress: wp_remote_post Gambaran Keseluruhan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!