WordPress程序远程数据请求函数:wp_remote_post、wp_remote_get
发起 HTTP 请求,是再平常不过的需求了。一般的就是使用 file_get_contents 或者 cURL。
但是在WordPress中,使用 file_get_contents 或者 cURL 开发的主题或插件,都会被WordPress官方拒绝。因为,WordPress官方已经提供了封装好的 HTTP 请求函数。之前也曾简单介绍过:WordPress 使用wp_remote_get和wp_remote_post 替代curl。
wp_remote_get 发起GET请求
使用举例:
1 |
<div class="codecolorer-container php geshi" style="overflow:auto;white-space:nowrap;width:100%;"><div class="php codecolorer" style="white-space:nowrap"><span style="color: #000088;">$response</span> <span style="color: #339933;">=</span> wp_remote_get<span style="color: #009900;">(</span> <span style="color: #0000ff;">'https://数据网址'</span> <span style="color: #009900;">)</span><span style="color: #339933;">;</span><br><span style="color: #b1b100;">if</span> <span style="color: #009900;">(</span> <span style="color: #990000;">is_array</span><span style="color: #009900;">(</span> <span style="color: #000088;">$response</span> <span style="color: #009900;">)</span> <span style="color: #339933;">&&</span> <span style="color: #339933;">!</span> is_wp_error<span style="color: #009900;">(</span> <span style="color: #000088;">$response</span> <span style="color: #009900;">)</span> <span style="color: #339933;">&&</span> <span style="color: #000088;">$response</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'response'</span><span style="color: #009900;">]</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'code'</span><span style="color: #009900;">]</span> <span style="color: #339933;">==</span> <span style="color: #0000ff;">'200'</span> <span style="color: #009900;">)</span> <span style="color: #009900;">{</span><br><span style="color: #000088;">$headers</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$response</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'headers'</span><span style="color: #009900;">]</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// array of http header lines</span><br><span style="color: #000088;">$body</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$response</span><span style="color: #009900;">[</span><span style="color: #0000ff;">'body'</span><span style="color: #009900;">]</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// use the content</span><br><span style="color: #009900;">}</span></div></div> |
在获取到 $body 后,要根据实际情况,对其进行解析。
wp_remote_post发起POST请求
函数 wo_remote_post 返回的结果(wp_remote_get的结果也一样)如下:
- 'headers' (string[]) 响应头信息。
- 'body' (string) 响应体。
- 'response' (array) HTTP 相关的相应数据。
- 'code' (int|false) HTTP CODE。
- 'message' (string|false) HTTP 相应消息。
- 'cookies' (WP_HTTP_Cookie[]) cookies 信息。
- 'http_response' (WP_HTTP_Requests_Response|null) 原始的 HTTP 相应。
使用举例:
1 |
<div class="codecolorer-container php geshi" style="overflow:auto;white-space:nowrap;width:100%;"><div class="php codecolorer" style="white-space:nowrap"><span style="color: #000088;">$response</span> <span style="color: #339933;">=</span> wp_remote_post<span style="color: #009900;">(</span> <span style="color: #000088;">$url</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">(</span><br><span style="color: #0000ff;">'method'</span> <span style="color: #339933;">=></span> <span style="color: #0000ff;">'POST'</span><span style="color: #339933;">,</span><br><span style="color: #0000ff;">'timeout'</span> <span style="color: #339933;">=></span> <span style="color: #cc66cc;">45</span><span style="color: #339933;">,</span><br><span style="color: #0000ff;">'redirection'</span> <span style="color: #339933;">=></span> <span style="color: #cc66cc;">5</span><span style="color: #339933;">,</span><br><span style="color: #0000ff;">'httpversion'</span> <span style="color: #339933;">=></span> <span style="color: #0000ff;">'1.0'</span><span style="color: #339933;">,</span><br><span style="color: #0000ff;">'blocking'</span> <span style="color: #339933;">=></span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #339933;">,</span><br><span style="color: #0000ff;">'headers'</span> <span style="color: #339933;">=></span> <span style="color: #990000;">array</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">,</span><br><span style="color: #0000ff;">'body'</span> <span style="color: #339933;">=></span> <span style="color: #990000;">array</span><span style="color: #009900;">(</span><br><span style="color: #0000ff;">'username'</span> <span style="color: #339933;">=></span> <span style="color: #0000ff;">'bob'</span><span style="color: #339933;">,</span><br><span style="color: #0000ff;">'password'</span> <span style="color: #339933;">=></span> <span style="color: #0000ff;">'1234xyz'</span><br><span style="color: #009900;">)</span><span style="color: #339933;">,</span><br><span style="color: #0000ff;">'cookies'</span> <span style="color: #339933;">=></span> <span style="color: #990000;">array</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><br><span style="color: #009900;">)</span><br><span style="color: #009900;">)</span><span style="color: #339933;">;</span><br><br><span style="color: #b1b100;">if</span> <span style="color: #009900;">(</span> is_wp_error<span style="color: #009900;">(</span> <span style="color: #000088;">$response</span> <span style="color: #009900;">)</span> <span style="color: #009900;">)</span> <span style="color: #009900;">{</span><br><span style="color: #000088;">$error_message</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$response</span><span style="color: #339933;">-></span><span style="color: #004000;">get_error_message</span><span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span><br><span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">"Something went wrong: <span style="color: #006699; font-weight: bold;">$error_message</span>"</span><span style="color: #339933;">;</span><br><span style="color: #009900;">}</span> <span style="color: #b1b100;">else</span> <span style="color: #009900;">{</span><br><span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'Response:<pre>'</span><span style="color: #339933;">;</span><br><span style="color: #990000;">print_r</span><span style="color: #009900;">(</span> <span style="color: #000088;">$response</span> <span style="color: #009900;">)</span><span style="color: #339933;">;</span><br><span style="color: #b1b100;">echo</span> <span style="color: #0000ff;">'</pre>'</span><span style="color: #339933;">;</span><br><span style="color: #009900;">}</span></div></div> |
由于网站搬家,部分链接失效,如无法下载,请联系站长!谢谢支持!
1. 带 [亲测] 说明源码已经被站长亲测过!
2. 下载后的源码请在24小时内删除,仅供学习用途!
3. 分享目的仅供大家学习和交流,请不要用于商业用途!
4. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
5. 本站所有资源来源于站长上传和网络,如有侵权请邮件联系站长!
6. 没带 [亲测] 代表站长时间紧促,站长会保持每天更新 [亲测] 源码 !
7. 盗版ripro用户购买ripro美化无担保,若设置不成功/不生效我们不支持退款!
8. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
9. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
10.如果您购买了某个产品,而我们还没来得及更新,请联系站长或留言催更,谢谢理解 !
GG资源网 » WordPress程序远程数据请求函数:wp_remote_post、wp_remote_get
1. 带 [亲测] 说明源码已经被站长亲测过!
2. 下载后的源码请在24小时内删除,仅供学习用途!
3. 分享目的仅供大家学习和交流,请不要用于商业用途!
4. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
5. 本站所有资源来源于站长上传和网络,如有侵权请邮件联系站长!
6. 没带 [亲测] 代表站长时间紧促,站长会保持每天更新 [亲测] 源码 !
7. 盗版ripro用户购买ripro美化无担保,若设置不成功/不生效我们不支持退款!
8. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
9. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
10.如果您购买了某个产品,而我们还没来得及更新,请联系站长或留言催更,谢谢理解 !
GG资源网 » WordPress程序远程数据请求函数:wp_remote_post、wp_remote_get