【Egret】WEB服务调用

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

结果。。。

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

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

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

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

URLLoader类型

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

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


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


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


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

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

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

HttpRequest

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了。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值