尝试用egret调asmx里的方法,因为之前有用到过AS3.0调用,所以以为可以很容易上手搞定
结果。。。
报错如图所示,我用AS3.0的代码改H5,就发生了这个,所以应该不是服务端的问题,然后我也去官方社区里提问求助
官方人员让我设置好数据类型:
我开始以为是提交的数据头类型
经排查不是这里问题,后来官方工作人员说是:egret.URLLoaderDataFormat.TEXT 类型
尝试了各种类型后,问题依旧存在。。心中一万头草泥马奔腾而过
又回到当初各种百度,GG的情况,“Unsupported Media Type”不支持的媒体类型
结合之前搜索到的信息,应该是服务器配置问题,未完待续。。。。
继续这个上述问题,开始以为是服务器配置问题,后来和同事联调后,确认不是服务器问题,所以问题又回到了前端这
发现了Content-Type,这个类型并不是我代码里设置的,查询API手册得知:requestHeaders
原来不支持设置....问题没有结束,未完待续。。。
后来求助QQ里的官方人员,给我指出了HttpRequest ,这里才可以设置正确的requestHeader头部信息,经测试也确实可以正确提交头部信息,但是还是调用不了web服务
var params = '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><GetloginUser xmlns="http://tempuri.org/" /></soap:Body></soap:Envelope>';
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了。。。