PHP CURL指定host内网通信

简介: 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 = @file_get_contents('php://input'); $bodyData = json_decode($bodyData,true); //将获取到的值转化为数组格式

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

开心一刻:
image.png

相关文章
|
JSON PHP 数据格式
PHP curl方法封装
PHP curl方法封装
382 0
|
存储 监控 算法
论内网电脑监控软件中 PHP 哈希表算法的深度剖析与探究
当代企业网络管理体系中,内网电脑监控软件占据着关键地位。其功能涵盖对员工电脑操作行为的实时监测,以此维护企业信息安全,同时助力企业优化网络资源配置,提升整体工作效能。在构建内网电脑监控软件的诸多技术中,数据结构与算法构成了核心支撑体系。本文聚焦于哈希表这一重要数据结构,深入剖析其在 PHP 语言环境下,如何为内网电脑监控软件的高效运作提供助力,并通过详实的代码示例予以阐释。
229 3
|
存储 监控 算法
基于 PHP 二叉搜索树算法的内网行为管理机制探究
在当今数字化网络环境中,内网行为管理对于企业网络安全及高效运营具有至关重要的意义。它涵盖对企业内部网络中各类行为的监测、分析与管控。在内网行为管理技术体系里,算法与数据结构扮演着核心角色。本文将深入探究 PHP 语言中的二叉搜索树算法于内网行为管理中的应用。
209 4
|
缓存 监控 算法
内网监控管理软件:PHP 语言队列算法揭秘
在数字化办公环境中,内网监控管理软件对企业的稳定运行和信息安全至关重要。本文深入介绍PHP中的队列算法及其在内网监控软件中的应用,包括监控数据收集、任务调度和日志记录等场景,通过代码示例展示其实现方法。队列算法可提高性能、保证数据顺序并实现异步处理,为企业提供高效的安全保障。
279 1
|
数据采集 JavaScript 网络安全
为什么PHP爬虫抓取失败?解析cURL常见错误原因
豆瓣电影评分是电影市场的重要参考,通过网络爬虫技术可以高效采集评分数据,帮助电影制作和发行方优化策略。本文介绍使用PHP cURL库和代理IP技术抓取豆瓣电影评分的方法,解决反爬机制、网络设置和数据解析等问题,提供详细代码示例和优化建议。
760 0
为什么PHP爬虫抓取失败?解析cURL常见错误原因
|
PHP
php使用curl新增微信临时素材(上传图片)
php使用curl新增微信临时素材(上传图片)
504 4
|
JSON PHP 数据格式
蓝易云 - PHP用CURL发送Content-type为application/json的POST请求方法
在这段代码中,我们首先创建了一个包含我们要发送的数据的数组,并使用 `json_encode`函数将其转换为JSON格式。然后,我们初始化了一个cURL会话,并设置了一些选项,包括POST请求方法、要发送的数据、返回结果和HTTP头部信息。最后,我们执行了cURL请求并关闭了会话。
816 2
|
Web App开发 API PHP
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
355 0
|
网络协议 Linux API
php curl执行太慢解决
网站访问快速,但API接口由curl_exec调用时遭遇显著延迟。问题根源在于DNS配置不当。切换至常用DNS,如114.114.114.114,立即提升了接口响应速度。
540 0

热门文章

最新文章