PHP CURL指定host内网通信

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: PHP CURL指定host内网通信

场景是这样的

小马假设A服务器放置了web站点如xx.xx.com,B服务器放置了需要访问A服务的API接口如xx.xx.com/api/userList。两台服务器都位于同一内网中。

A的IP为9.140.130.150,B的IP为9.140.130.151。此时如果B要发起对api访问,当然是直接CURL到地址xx.xx.com/api/userList,爽歪歪。但是如果要求内网通信呢?于是,就是9.140.130.150/api/userList,那么会发生什么?无法解析。因为web站点目录绑定了域名(如nginx配置),此时直接使用IP可能无法解析。那好办,改成xx.xx.com/api/userList调用呗。咦,好像哪里不对,这不又是回到外网方式访问么?一般是域名会先被DNS解析到外网IP。于是想起了我们本地开发时候使用的host配置。我们在B服务器配置域名的HOST?显然不合理。

那这个怎么搞?有没有最方便的解决方式。

CURL指定host内网通信

先来看一下PHP的CURL函数。注意PHP的curl是一个函数系列。

特别注意这两个函数。
image.png

我们注意到这里可以设置curl的各种请求参数,包括header请求头参数。
image.png

于是我们直接调用内网IP解决内网通信问题,用指定访问的host解决站点域名解析问题。参考代码如下:
image.png

于是我们怎么使用它呢?

$Data = ['id'=>1, 'name'=>'小马'];

curlHost('http://9.140.130.150/api/userList', $Data, 'Get');

这样就OK了。

附上CURL封装代码示例:

image.png

彩蛋时间:

1、如果获取通过header请求头参数传递的数据?

如PHP服务端取请求头参数Authorization,$_SERVER['HTTP_AUTHORIZATION']。

如果取body里的呢?bodyData=@filegetcontents(php://input);bodyData = json_decode($bodyData,true); //将获取到的值转化为数组格式

2、为什么我们平时用$_POST就能取到body中的数据呢?如下:
image.png

开心一刻:
image.png

目录
打赏
0
1
1
0
68
分享
相关文章
|
10月前
|
PHP curl方法封装
PHP curl方法封装
164 0
|
11天前
|
基于 PHP 二叉搜索树算法的内网行为管理机制探究
在当今数字化网络环境中,内网行为管理对于企业网络安全及高效运营具有至关重要的意义。它涵盖对企业内部网络中各类行为的监测、分析与管控。在内网行为管理技术体系里,算法与数据结构扮演着核心角色。本文将深入探究 PHP 语言中的二叉搜索树算法于内网行为管理中的应用。
23 4
内网监控管理软件:PHP 语言队列算法揭秘
在数字化办公环境中,内网监控管理软件对企业的稳定运行和信息安全至关重要。本文深入介绍PHP中的队列算法及其在内网监控软件中的应用,包括监控数据收集、任务调度和日志记录等场景,通过代码示例展示其实现方法。队列算法可提高性能、保证数据顺序并实现异步处理,为企业提供高效的安全保障。
24 1
为什么PHP爬虫抓取失败?解析cURL常见错误原因
豆瓣电影评分是电影市场的重要参考,通过网络爬虫技术可以高效采集评分数据,帮助电影制作和发行方优化策略。本文介绍使用PHP cURL库和代理IP技术抓取豆瓣电影评分的方法,解决反爬机制、网络设置和数据解析等问题,提供详细代码示例和优化建议。
161 0
为什么PHP爬虫抓取失败?解析cURL常见错误原因
|
9月前
|
PHP
php使用curl新增微信临时素材(上传图片)
php使用curl新增微信临时素材(上传图片)
330 4
蓝易云 - PHP用CURL发送Content-type为application/json的POST请求方法
在这段代码中,我们首先创建了一个包含我们要发送的数据的数组,并使用 `json_encode`函数将其转换为JSON格式。然后,我们初始化了一个cURL会话,并设置了一些选项,包括POST请求方法、要发送的数据、返回结果和HTTP头部信息。最后,我们执行了cURL请求并关闭了会话。
250 2
|
9月前
|
PHP封装的不错的一个Curl方法
This is a PHP function named `teacher_curl` that wraps around the cURL library for making HTTP requests. The function initializes a cURL session, sets various options such as disabling SSL verification, sets headers, handles POST data
172 0
php curl执行太慢解决
网站访问快速,但API接口由curl_exec调用时遭遇显著延迟。问题根源在于DNS配置不当。切换至常用DNS,如114.114.114.114,立即提升了接口响应速度。
219 0
|
10月前
|
PHP
php curl获取cookie
php curl获取cookie
72 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等