java获取客服列表,获取配置了客户联系功能的成员列表,数据为空会报错

简要描述

获取配置了客户联系功能的成员列表返回空数据会报错

模块版本情况

WxJava 模块名: weixin-java-cp

WxJava 版本号: 3.7.0

详细描述

获取配置了客户联系功能的成员列表

https://work.weixin.qq.com/api/doc/90001/90143/92576

该接口如果数据为空会直接报错,业务本身存在员工没有外部联系人的情况。这个能解决吗?

目前只是简单try catch 处理,可是还是会有错误日志头疼

// 查询用户客户列表

List externalUserIdList = Lists.newArrayList();

try {

externalUserIdList = wxCpService.getExternalContactService().listExternalContacts(userid);

} catch (WxErrorException e) {

WxError error = e.getError();

// not external contact,无客户返回空值不处理

if (error.getErrorCode() != 84061) {

throw e;

}

}

日志

2020-04-23 18:35:33.421 ERROR 1310192 --- [io-9302-exec-13] m.c.w.cp.api.impl.BaseWxCpServiceImpl :

【请求地址】: https://qyapi.weixin.qq.com/cgi-bin/externalcontact/list?userid=LvBiZi&access_token=li5d5hPDmCYS1B2zKwFOnKMSwRZBebI4YvlMSQN1oBAoCOOxqZN3IdlY4YE7dJVTPIQfNw8o6vNivblUI-40BxX5aCkiClDvNo4x9FVGZeozh0tU_Jdmr3eKARA9BUpE89tR6qxqF7LghDcjh0YcHLN6yznjYDAM8cAbvKn3GLWYLQMYYPy2NSVw4M2WemB66qZxTJ2WB0XMiANDeuXNJA

【请求参数】:null

【错误信息】:错误代码:84061, 错误信息:not external contact, hint: [1587638134_59_10c59a36f1cb3c6706ad8e04d0a15d7a], from ip: 115.205.95.244, more info at https://open.work.weixin.qq.com/devtool/query?e=84061,微信原始报文:{"errcode":84061,"errmsg":"not external contact, hint: [1587638134_59_10c59a36f1cb3c6706ad8e04d0a15d7a], from ip: 115.205.95.244, more info at https://open.work.weixin.qq.com/devtool/query?e=84061","external_userid":[]}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以通过以下代码获取IE代理配置中已经配置的忽略地址列表: ```java import java.net.ProxySelector; import java.net.URI; public class Main { public static void main(String[] args) { // 获取系统默认的代理选择器 ProxySelector selector = ProxySelector.getDefault(); // 获取当前系统默认的代理 System.out.println("Current default proxy: " + selector); // 获取IE代理配置中已经配置的忽略地址列表 try { URI uri = new URI("http", null, "www.baidu.com", 80, null, null, null); System.setProperty("java.net.useSystemProxies", "true"); selector = ProxySelector.getDefault(); System.out.println("Current proxy selector: " + selector); System.out.println("Non-proxy hosts: " + selector.select(uri)); } catch (Exception e) { e.printStackTrace(); } } } ``` 其中,`selector.select(uri)`方法返回的就是IE代理配置中已经配置的忽略地址列表。 ### 回答2: Java可以通过使用System类中的getProperty()方法获取系统的相关属性值。在获取IE代理配置中已经配置的忽略地址列表时,可以使用以下步骤: 1. 调用System.getProperty()方法获取"java.version"属性值,确定Java的版本。 2. 根据Java的版本选择相应的类和方法来获取IE代理配置信息。 - 对于Java 1.6及以前的版本,可以使用java.net.ProxySelector类的getDefault()方法获取默认的代理选择器,并通过调用ProxySelector类的select()方法获取所有的代理实例和相应的忽略地址。 - 对于Java 1.7及以后的版本,可以使用java.net.ProxySelector类的getSystemDefault()方法获取系统默认的代理选择器,并通过调用ProxySelector类的select()方法获取所有的代理实例和相应的忽略地址。 3. 遍历代理实例列表获取每个代理实例对应的忽略地址列表。 以下是一个示例代码: ```java import java.net.Proxy; import java.net.ProxySelector; import java.net.URI; import java.util.List; public class Main { public static void main(String[] args) { String javaVersion = System.getProperty("java.version"); if (javaVersion.startsWith("1.7") || javaVersion.startsWith("1.8") || javaVersion.startsWith("1.9")) { ProxySelector proxySelector = ProxySelector.getDefault(); List<Proxy> proxyList = proxySelector.select(URI.create("http://example.com")); for (Proxy proxy : proxyList) { System.out.println("Proxy Type: " + proxy.type()); if (proxy.address() != null) { System.out.println("Proxy Address: " + proxy.address()); } System.out.println("Non-proxy Hosts: " + proxySelector.getSystemDefault().nonProxyHosts()); } } else { // Java 1.6 and earlier versions // Do something else to get the proxy configuration for these versions System.out.println("Unsupported Java Version"); } } } ``` 注意:根据不同的Java版本,方法的具体实现可能有所不同。建议根据实际环境自行调整代码。 ### 回答3: 在Java获取IE代理配置中已经配置的忽略地址列表,可以通过读取Windows注册表实现。 首先,需要导入`java.util.prefs.Preferences`类库,该类库提供了对Windows注册表的访问功能。 然后,可以通过以下代码获取IE代理配置的忽略地址列表: ```java import java.util.prefs.Preferences; public class IEProxyConfig { public static void main(String[] args) { try { // 获取HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\AutoConfigURL键值的注册表项 Preferences prefs = Preferences.userRoot().node("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"); String autoConfigUrl = prefs.get("AutoConfigURL", ""); if (!autoConfigUrl.isEmpty()) { // 根据AutoConfigURL获取忽略地址列表 // 逻辑自行实现 // ... System.out.println("忽略地址列表:" + ignoreList); } } catch (Exception ex) { ex.printStackTrace(); } } } ``` 上述代码通过`Preferences`类获取了`HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings`注册表项,并通过`get`方法获取了`AutoConfigURL`键对应的值。如果该值不为空,则表示IE代理配置了自动代理脚本URL。 接下来,可以根据自动代理脚本URL获取忽略地址列表的逻辑来实现对忽略地址列表获取,具体的实现逻辑需要根据自己的需求和实际情况来编写。 最后,通过打印输出忽略地址列表,即可获取IE代理配置中已经配置的忽略地址列表

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值