Egret社区

[Egret Engine] iOS Native HttpRequest设置header无效

2019-1-8 10:36
776
产品 Egret Engine 版本 5.2.13
复现概率 100% 平台 iOS 12.1
复现步骤 使用引擎默认demo即可,调用下面代码,发布成非hybrid原生iOS项目。请求成功后返回值里会携带自己的请求信息,里面没有设置过的header。
问题描述 xcode10.1 打包的非hybrid原生项目, HttpRequest setRequestHeader不生效。截包看了,都是默认的header,自己设置的一个也没有。
只在iOS Native下出现这个问题,别的都正常,同样的代码。
错误代码 401
BUG截图
        private static test(){
                // 测试iphone header
        var request = new egret.HttpRequest();
        request.responseType = egret.HttpResponseType.TEXT;
        request.open("http://httpbin.org/get",egret.HttpMethod.GET);
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        request.setRequestHeader("Authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==");
        request.send();
        request.addEventListener(egret.Event.COMPLETE,this.onGetComplete1,this);
        request.addEventListener(egret.IOErrorEvent.IO_ERROR,this.onGetIOError1,this);
        request.addEventListener(egret.ProgressEvent.PROGRESS,this.onGetProgress1,this);
        }
        private static onGetComplete1(event:egret.Event):void {
        var request = <egret.HttpRequest>event.currentTarget;
        LogUtil.log("get data : ",request.response);
    }
    private static onGetIOError1(event:egret.IOErrorEvent):void {
        LogUtil.log("get error : " + event);
    }
    private static onGetProgress1(event:egret.ProgressEvent):void {
        LogUtil.log("get progress : " + Math.floor(100*event.bytesLoaded/event.bytesTotal) + "%");
    }

分享到 :
0 人收藏

6 个回复

倒序浏览
SampleIz  登堂入室 | 2019-1-8 11:14:58
    request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    request.setRequestHeader("Authorization", "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==");


这个地方设置两次是啥操作~~
李八疼  圆转纯熟 | 2019-1-8 11:39:06
SampleIz 发表于 2019-1-8 11:14
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    request.setRe ...

设置请求头呀
SampleIz  登堂入室 | 2019-1-8 11:46:12

你这个设置了两次 不会覆盖第一次的设置么?
SampleIz  登堂入室 | 2019-1-8 11:47:47
SampleIz 发表于 2019-1-8 11:46
你这个设置了两次 不会覆盖第一次的设置么?

另外  request.send(); 之前 这个监听就一定要加好~~你这个监听没加上了已经请求了~~会完美错过的
李八疼  圆转纯熟 | 2019-1-8 12:05:05
SampleIz 发表于 2019-1-8 11:47
另外  request.send(); 之前 这个监听就一定要加好~~你这个监听没加上了已经请求了~~会完美错过的 ...

老哥讲的挺有道理的,都没法反驳。我这是从官方文档里copy的,主要问题是不监听,可以把send()后面的全删了。
李八疼  圆转纯熟 | 2019-1-9 10:51:38
可能是iOS系统问题,没找到解决方法。已换hybrid打包方式,正常。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号

Powered by Discuz! X3.2 © 2001-2019 Comsenz Inc.

返回顶部