java.net.URISyntaxException: Illegal character in hostname at index 37

项目场景:搭建SpringCloud项目,使用Eureka注册服务发现,配置了Eureka服务、“生产者”服务、“消费者”服务。


问题描述

在“消费者”服务中调用“生产者”服务的api出现以下异常信息:

@Override
2022-08-14 11:14:47.398 ERROR 19408 --- [nio-8001-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : 
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; 
nested exception is java.lang.IllegalStateException: Could not create URI object: Illegal character in hostname at index 37: 
http://windows10.microdone.cn127.0.0.1:7901/user/sayHaha] with root cause

java.net.URISyntaxException: Illegal character in hostname at index 37: http://windows10.microdone.cn127.0.0.1:7901/user/sayHaha
	at java.net.URI$Parser.fail(URI.java:2848) ~[na:1.8.0_161]
	at java.net.URI$Parser.parseHostname(URI.java:3395) ~[na:1.8.0_161]
	……

原因分析:

1、查看前半段异常信息java.net.URISyntaxException: Illegal character in hostname at index 37,表明URL地址出现了语法错误。
2、再看看后半段的URL地址:http://windows10.microdone.cn127.0.0.1:7901/user/sayHaha,很明显这里 windows10.microdone.cn 的地址是错误的,因为我的URL地址中并没有添加该地址字符串,也就是说在我使用“消费者”服务调用“生产者”服务器的api接口时,遭到了计算机内某些程序的劫持,从而修改了地址,导致无论是用api测试工具还是用网页测试地址,都会被修改成错误地址,使得无法正常访问我要的地址。
3、通过百度查询“windows10.microdone.cn”得知该地址是由《银联安全控件》的所作所为,即我们在使用网上银联是安装的安全检测控件。
4、通过测试发现,该控件是一个“流氓”软件,为了保证安全支付环境,该控件会反复启动,难以结束进程。所以我的主要解决方向是一卸载该控件。


解决方案:

方案一、卸载《银联安全控件》

1、打开任务管理器。
2、找到UPSecurityInput。
3、鼠标右键“打开文件所在位置”。
4、点击uninst.exe卸载控件。
5、卸载完后,删除UPSecurityInpt.exe程序。
在这里插入图片描述
在这里插入图片描述

方案二、修改host文件

来源:Hosts 文件被修改
在这里插入图片描述
以下是我修改的地方:
在这里插入图片描述

方案三

删除北京微通新成

方案四

windows10 代理频繁被自动篡改


总结:方案三四我使用了无效果,最终按方案一二解决该问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值