【异常解决】UnknownHostException: api.weixin.qq.com 的解决方案

简介: 在使用微信服务过程中(调用api.weixin.qq.com),经常会碰到如下这种问题:“java.net.UnknownHostException: api.weixin.qq.com: 未知的名称或服务”。

一、问题描述

在使用微信服务过程中(调用api.weixin.qq.com),经常会碰到如下这种问题:“java.net.UnknownHostException: api.weixin.qq.com: 未知的名称或服务”。如下图所示:

1.png

关键是这种问题不是必现,在Windows电脑上可能正常调用,但是部署到服务器(Linux系统)上却出现了,问题很难排查。查了好多方案都没有解决。最后通过不断分析实验,得出本文解决方法。

二、解决方案

Linux系统下的解决方案如下:

步骤1:找到resolv.conf配置文件

一般情况下此文件都会在 /etc/ 目录下

配置上如下内容:

options timeout:1 attempts:1 rotate

#options single-request-reopen

nameserver 119.29.29.29

nameserver 114.114.114.114

nameserver 180.76.76.76

nameserver 223.5.5.5

Tips:nameserver:dns服务器,分别采用了腾讯的、114的、百度的、阿里的dns服务器,总有一个是可行的。

步骤2:chattr + i /etc/resolv.conf

在有些Linux下,当网络重启后,/etc/resolv.conf会恢复到原来的状态。本命令是让文件编程只读。如果今后需要修改,用chattr -i /etc/resolv.conf

步骤3:vi /etc/sysconfig/network-scripts/ifcfg-eth0

删掉DNS1,DNS2参数,都用resolv.conf中的配置

步骤4:重新启动网络:service network restart

如果报错或者不生效,请找问题并重启网络

步骤5:可以用nslookup查看哪个DNS生效

三、参数说明

options 后面跟的是各种参数,每个参数意义如下:

timeout:设置等待dns服务器返回的超时时间,单位秒。默认值5。

attempts:向DNS服务器发起域名解析的请求次数。默认值2。采用多个dns服务器轮询

rotate:采用轮询方式访问nameserver

single-request-reopen:CentOS6/CentOS7总是需要等待AAAA(IPv6)的结果,即使关闭IPv6也没什么用。

CentOS 6/CentOS 7中的DNS解析器对于ipv4和ipv6都使用同一个socket接口,在同时发出ipv4和ipv6解析请求后,只会收到一个ipv4的解析响应,此时socket将一处于“等待”模式,等待ipv6的解析响应,故导致解析缓慢;添加single-request-reopen后就可以重新打开一个新的socket接收ipv6的解析响应,而不影响ipv4的解析响应。

四、补充说明

经验证关于 options single-request-reopen 配置在某些环境可以,但在某些环境下打开会导致错误如下:

java.net.UnknownHostException: www.xxxxx.com: 未知的名称或服务atjava.net.Inet6AddressImpl.lookupAllHostAddr(NativeMethod)


该种情况下,关闭该选项即可。



本文完结!

相关文章
|
域名解析 网络协议 Linux
【异常解决】UnknownHostException: api.weixin.qq.com 的解决方案
【异常解决】UnknownHostException: api.weixin.qq.com 的解决方案
1750 0
|
域名解析 缓存 网络协议
如何在 Linux 上刷新 DNS 缓存?
如何在 Linux 上刷新 DNS 缓存?
1296 0
|
7月前
|
存储 弹性计算 固态存储
阿里云服务器收费价格参考,2核16G、4核32G、8核64G配置收费标准
阿里云服务器2核16G、4核32G、8核64G配置最新租用价格更新,2核16G配置按量收费最低收费标准为0.596元/小时,按月租用标准收费标准为286.2元/1月。4核32G配置的阿里云服务器按量收费标准最低为1.192元/小时。8核64G配置的阿里云服务器按量收费标准最低为2.385元/小时。云服务器实例规格的地域和实例规格不同,收费标准不一样,下面是2025年阿里云服务器2核16G、4核32G、8核64G配置的最新租用收费标准。
1688 55
|
监控 网络安全
网页显示HTTP错误503怎么办?HTTP错误503解决方法
HTTP 503错误表示服务器暂时无法处理请求,通常是由于服务器过载或维护导致。常见解决方法包括:1. 等待一段时间再刷新页面;2. 检查服务器负载;3. 确认服务器是否在维护;4. 检查配置错误;5. 联系服务提供商。通过这些步骤,用户和管理员可以有效排查并解决该问题。
15690 3
|
SQL 关系型数据库 MySQL
sqlite3自动插入创建时间和更新时间
在本文中,作者分享了如何使用sqlite3数据库来记录结构化日志,并实现主键ID自增、插入数据时自动填充创建时间(created_at)以及更新数据时更新时间(updated_at)的功能。首先,创建数据库和表`position_info`,然后通过修改表结构使ID字段为自动递增。接着,设置`created_at`和`updated_at`字段默认值为当前时间。最后,创建一个触发器在数据更新时自动更新`updated_at`。完整SQL代码包括表创建和触发器定义。
682 0
|
SQL XML JavaScript
【若依Java】15分钟玩转若依二次开发,新手小白半小时实现前后端分离项目,springboot+vue3+Element Plus+vite实现Java项目和管理后台网站功能
摘要: 本文档详细介绍了如何使用若依框架快速搭建一个基于SpringBoot和Vue3的前后端分离的Java管理后台。教程涵盖了技术点、准备工作、启动项目、自动生成代码、数据库配置、菜单管理、代码下载和导入、自定义主题样式、代码生成、启动Vue3项目、修改代码、以及对代码进行自定义和扩展,例如单表和主子表的代码生成、树形表的实现、商品列表和分类列表的改造等。整个过程详细地指导了如何从下载项目到配置数据库,再到生成Java和Vue3代码,最后实现前后端的运行和功能定制。此外,还提供了关于软件安装、环境变量配置和代码自动生成的注意事项。
31161 73
|
Java API
Java企业微信开发_11_异常:java.net.UnknownHostException: qyapi.weixin.qq.com
原因: 网络原因导致 dns解析失败。       解决方案: 方案一 : 1、查看你的服务器能否ping通外网,不过不行说明你的网络出了问题.     (我的情况是客户的应用服务器只能内网访问,所以是网络出问题了) 2、在确保可以ping通外网的情况下,分析你的服务器是不是不支持域名解析,也就是说你的服务器只能ping IP地址, 不能ping www.
4374 0
|
前端开发 Java 开发者
这款免费 IDEA 插件让你开发 Spring 程序更简单
Feign-Helper 是一款支持 Spring 框架的 IDEA 免费插件,提供 URL 快速搜索、Spring Web Controller 路径一键复制及 Feign 与 Controller 接口互相导航等功能,极大提升了开发效率。
2767 1
|
Java 容器
RestTemplate报错I/O error on POST request for "http://crmjob.xxx.xxx.com/removeJob": Read timed out; nested exception is java.net.SocketTimeoutException: Read timed out问题处理
讲述RestTemplate报错I/O error on POST request for "http://crmjob.xxx.xxx.com/removeJob": Read timed out; nested exception is java.net.SocketTimeoutException: Read timed out处理方案
|
安全 Java API
实现跨域请求:Spring Boot后端的解决方案
本文介绍了在Spring Boot中处理跨域请求的三种方法:使用`@CrossOrigin`注解、全局配置以及自定义过滤器。每种方法都适用于不同的场景和需求,帮助开发者灵活地解决跨域问题,确保前后端交互顺畅与安全。
2174 0