栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在android上使用Socket.IO总是返回XHR轮询错误

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在android上使用Socket.IO总是返回XHR轮询错误

经过进一步测试,我发现以下内容:

  1. 如果在遇到其他事件(例如EVENT_ERROR)时调试套接字,则捕获的异常将包含从您尝试访问的地址收到的响应代码。
  2. 就我而言,当尝试使用HTTP到达服务器时,我收到了301响应代码,因为尝试访问的URL自动将我重定向到HTTPS地址。
  3. 尝试访问HTTPS地址时,我收到了401响应代码-表示我的套接字发出的请求已到达服务器,但未获得授权-原因是目标服务器已 开启基本身份验证, 而我没有提供套接字请求标头中的必需凭据。
  4. 提供所需的标头后,我设法正确连接到套接字服务器,但是在发送请求时失败,并且我的套接字返回到重新连接尝试循环-原因是我从服务器发送给服务器的JSON我的Android手机格式不符合预期,服务器无法收到该请求。

我用来向套接字请求添加基本身份验证标头的代码:

// Adding authentication headers when encountering EVENT_TRANSPORTmSocket.io().on(Manager.EVENT_TRANSPORT, new Emitter.Listener() {    @Override    public void call(Object... args) {        Transport transport = (Transport) args[0];        // Adding headers when EVENT_REQUEST_HEADERS is called        transport.on(Transport.EVENT_REQUEST_HEADERS, new Emitter.Listener() { @Override public void call(Object... args) {     Log.v(TAG, "Caught EVENT_REQUEST_HEADERS after EVENT_TRANSPORT, adding headers");     Map<String, List<String>> mHeaders = (Map<String, List<String>>)args[0];     mHeaders.put("Authorization", Arrays.asList("Basic bXl1c2VyOm15cGFzczEyMw==")); }        });    }});

如果在尝试使用Socket.IO时遇到XHR轮询错误,请确保与套接字服务器的连接可用并且连接正确。最后,以我为例,所有这些都围绕着需要基本身份验证的服务器展开,并且在与服务器联系时我不提供它。

另外 ,由于在尝试解决此问题时遇到了该解决方案的问题-当尝试通过HTTPS访问服务器时,通常 不需要
特殊的主机名验证程序或特殊的证书管理器。尝试避免使用此类解决方案,因为它们会严重损害您的应用程序的安全性。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/506153.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号