本地运行的WordPress如何访问同主机下的Spring Boot服务
同一台主机上运行的两个本地服务完全可以互相通信,你遇到的问题属于常见的网络配置或环境隔离问题,可按以下步骤排查解决:
优先排查环境隔离问题
如果你的WordPress是通过Docker、WSL、虚拟主机等隔离环境运行的,环境内的localhost指向的是当前隔离环境的本地回环地址,和宿主机上Spring Boot监听的localhost不属于同一个网络空间。
这种情况可以先把请求地址替换为宿主机的局域网IP(示例:http://192.168.3.2:8088/hello)测试,Docker环境下也可以用host.docker.internal(Windows/macOS Docker默认支持)替代localhost。检查Spring Boot监听地址配置
如果Spring Boot配置文件中server.address参数设置为127.0.0.1,服务会仅允许宿主机本地进程访问,隔离环境内的请求会被直接拒绝。可临时将该参数改为0.0.0.0放开所有地址绑定,测试通了之后再根据实际需求收窄访问权限。打印错误信息定位具体问题
在原有调用代码后增加错误输出逻辑,可以拿到具体的报错原因,避免盲目排查:
$response = wp_remote_get( 'http://localhost:8088/hello'); // 输出错误信息 if ( is_wp_error( $response ) ) { echo $response->get_error_message(); }
常见报错对应解决方案:
连接超时/连接被拒:排查宿主机防火墙是否拦截了8088端口,Spring Boot服务是否正常启动
HTTP 403:检查Spring Boot是否做了权限校验、IP访问限制
HTTP 404:确认接口路径、请求方法是否匹配
检查WordPress端请求拦截规则
部分WordPress安全插件、站点所在服务器的防火墙规则(如Nginx访问限制、系统iptables/ufw规则)会拦截WordPress对外发起的非80/443端口请求,可临时关闭相关规则测试是否可以正常请求。
内容的提问来源于stack exchange,提问作者KASMI G.

