【Egret】WEB服务调用

尝试用egret调asmx里的方法,因为之前有用到过AS3.0调用,所以以为可以很容易上手搞定

结果。。。

【Egret】WEB服务调用_第1张图片

报错如图所示,我用AS3.0的代码改H5,就发生了这个,所以应该不是服务端的问题,然后我也去官方社区里提问求助

官方人员让我设置好数据类型:

我开始以为是提交的数据头类型

【Egret】WEB服务调用_第2张图片

经排查不是这里问题,后来官方工作人员说是:egret.URLLoaderDataFormat.TEXT 类型

URLLoader类型

尝试了各种类型后,问题依旧存在。。心中一万头草泥马奔腾而过

 又回到当初各种百度,GG的情况,“Unsupported Media Type”不支持的媒体类型

【Egret】WEB服务调用_第3张图片

结合之前搜索到的信息,应该是服务器配置问题,未完待续。。。。


继续这个上述问题,开始以为是服务器配置问题,后来和同事联调后,确认不是服务器问题,所以问题又回到了前端这

【Egret】WEB服务调用_第4张图片

发现了Content-Type,这个类型并不是我代码里设置的,查询API手册得知:requestHeaders

【Egret】WEB服务调用_第5张图片

原来不支持设置....问题没有结束,未完待续。。。

后来求助QQ里的官方人员,给我指出了HttpRequest ,这里才可以设置正确的requestHeader头部信息,经测试也确实可以正确提交头部信息,但是还是调用不了web服务

HttpRequest

var params = '';
        var request = new egret.HttpRequest();
        request.responseType = egret.HttpResponseType.TEXT;
        request.open("http://192.172.19.183/UCML/BPO_Month_PlanList.asmx",egret.HttpMethod.POST);
        //request.setRequestHeader("Content-Type", "application/json");
        request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        //request.setRequestHeader("SOAPAction", "http://tempuri.org/GetloginUser");
        request.send(params);

这个提交后,提示流错误
之前是用的URLLoader和URLRequest,现在又走进了死胡同

[***********************************分隔符***********************************************]

折腾好久,官方提问也没人鸟我,分析了半天数据提交的头信息后,最终放弃,采用最原始的数据读取方式

直接带方面名称访问,如果是需要提交参数的话,就GET方式提交访问

实例:

假如地址:http://你的IP或域名/web服务.asmx/需要的方法

直接访问上述地址,如果需要提交参数的,就GET方式访问上述地址就OK了。。。

你可能感兴趣的:(egret)