当前位置: 首页 > news >正文

百度如何创建网站做二手家具回收哪个网站好

百度如何创建网站,做二手家具回收哪个网站好,电商网站费用,王烨的身份一、问题说明 1.1 问题描述 使用C# 搭建WebService接口#xff0c;并按照ESB平台人员的要求#xff0c;将命名空间改为http://esb.webservice,使用PostmanESB平台人员提供的入参示例进行测试时#xff0c;callBussiness接口参数message始终为null。 以下是ES…一、问题说明 1.1 问题描述 使用C# 搭建WebService接口并按照ESB平台人员的要求将命名空间改为http://esb.webservice,使用PostmanESB平台人员提供的入参示例进行测试时callBussiness接口参数message始终为null。 以下是ESB平台提供的模版 ?xml version1.0 encodingutf-8? soapenv:Envelope xmlns:soapenvhttp://schemas.xmlsoap.org/soap/envelope/ xmlns:esbhttp://esb.webservicesoapenv:Header/soapenv:Bodyesb:callBussiness!--Optional:--message![CDATA[...]]/message/esb:callBussiness/soapenv:Body /soapenv:Envelope1.2 C# WebService代码 using System; using System.IO; using System.Text; using System.Web.Services; using System.Xml; using System.Xml.Serialization; using Rss_WebServer.code;namespace ESB {/// summary/// WebService 的摘要说明/// /summary[WebService(Namespace http://esb.webservice)][WebServiceBinding(ConformsTo WsiProfiles.BasicProfile1_1)][System.ComponentModel.ToolboxItem(false)]// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务请取消注释以下行。 // [System.Web.Script.Services.ScriptService]public class WebService : System.Web.Services.WebService{[WebMethod(Description 调用业务)]public string callBussiness(string message){return message; }} }1.3 Postman 测试参数 POST http://localhost:55305/WebService.asmx?opcallBussiness Headers KEYVALUEDESCRIPTIONContent-Typetext/xml; charsetutf-8SOAPAction“http://esb.webservice/callBussiness” Body raw XML(text/xml) ?xml version1.0 encodingutf-8? soapenv:Envelope xmlns:soapenvhttp://schemas.xmlsoap.org/soap/envelope/ xmlns:esbhttp://esb.webservicesoapenv:Header/soapenv:Bodyesb:callBussiness!--Optional:--message![CDATA[rootauthor少莫千华/authoremail370763160qq.com/email/root]]/message/esb:callBussiness/soapenv:Body /soapenv:Envelope二、问题分析 根本问题是ESB平台提供的参数模版并没有完全按照标准的WebService协议进行编写导致使用官方搭建的WebService接口无法正常的解析参数所以要想解决此问题有两个途径 与ESB平台人员沟通要求其标准化参数模版 自己重新解构WebService参数 三、解决方案 3.1 与ESB平台人员沟通要求其标准化参数模版 3.1.1 标准模版 - 使用命名空间缩写 对callBussiness接口的message参数添加命名空间缩写esb ?xml version1.0 encodingutf-8? soapenv:Envelope xmlns:soapenvhttp://schemas.xmlsoap.org/soap/envelope/ xmlns:esbhttp://esb.webservicesoapenv:Header/soapenv:Bodyesb:callBussiness!--Optional:--esb:message![CDATA[...]]/esb:message/esb:callBussiness/soapenv:Body /soapenv:Envelope3.1.1 标准模版 - 使用完整的命名空间 对callBussiness接口的使用完整的命名空间callBussiness xmlnshttp://esb.webservice。 ?xml version1.0 encodingutf-8? soapenv:Envelope xmlns:soapenvhttp://schemas.xmlsoap.org/soap/envelope/soapenv:Header/soapenv:BodycallBussiness xmlnshttp://esb.webservice!--Optional:--message![CDATA[...]]/message/callBussiness/soapenv:Body /soapenv:Envelope3.2 自己重新解构WebService参数 从请求对象base.Context.Request中重新获取所有Body内容(InputStream)然后再进行自定义解析。 注因为是搭建的标准的WebService接口Body内容(InputStream)在进去函数内部前已经被SOAP协议解析过一次所以InputStream的起始内容位置Position 指向数据流的结尾所以在读取之前先要将InputStream的起始内容位置Position设置为0否则读取的内容为空() using System; using System.IO; using System.Text; using System.Web.Services; using System.Xml; using System.Xml.Serialization; using Rss_WebServer.code; namespace ESB {/// summary/// WebService 的摘要说明/// /summary[WebService(Namespace http://esb.webservice)][WebServiceBinding(ConformsTo WsiProfiles.BasicProfile1_1)][System.ComponentModel.ToolboxItem(false)]// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务请取消注释以下行。 // [System.Web.Script.Services.ScriptService]public class WebService : System.Web.Services.WebService{[WebMethod(Description 调用业务)]public string callBussiness(string message){try{if (string.IsNullOrEmpty(message)){message WebServiceAnalysis(base.Context.Request, nameof(message));}return message;}catch(Exception exp){return exp.Message;}}/// summary/// 重新解析 WebService/// /summary/// param namerequest/param/// param namename/param/// returns/returnsprivate string WebServiceAnalysis(System.Web.HttpRequest request,string name){try{if(request.ContentLength 0){throw new Exception($Body(xml数据) 无数据);}// 获取请求内容Stream inputStream request.InputStream;// 重新获取内容inputStream.Position 0;// 读取请求主体内容using (StreamReader reader new StreamReader(inputStream, Encoding.UTF8)){string requestBody reader.ReadToEnd();XmlDocument xmlDoc new XmlDocument();xmlDoc.LoadXml(requestBody);XmlNode strNode xmlDoc.SelectSingleNode($//{name});if (strNode ! null){return strNode.InnerText;}else{throw new Exception($未在Body(xml数据)找到{name}节点);}}}catch(Exception exp){throw exp;}}} }
http://wiki.neutronadmin.com/news/270231/

相关文章:

  • 人人车网站建设wordpress font.googleapis
  • hdwiki做网站形容网站开发的词
  • 建设网站免费支持phpwordpress百度和分类
  • 浙江网站建设哪家权威烟台卓通网络科技有限公司
  • 韩顺平 开源网站网站模板整站
  • 北京网站设计制作关键词优化微信小程序开发推广海外网站怎么浏览
  • 十大品牌网站wordpress永久免费
  • 中山哪里做网站低代码开发平台公司
  • 资源网站哪个好网站建设的相关职位
  • 网站开发 问题 关键技术手机网站你们
  • 企业网站搜索推广烟台做网站优化
  • 江西省城乡建设培训中心网站郑州建设工程招标信息网
  • 云南网站设计外包基于lnmp做wordpress
  • 怎么弄自己的网站卖东西在哪里可以找到做网站的公司
  • 长沙营销网站建站公司wordpress 教程网
  • 中国外贸网站有哪些问题谷歌商店下载官方
  • 县城做网站东莞哪里有网站制作公司
  • 论坛网站平台建设方案数字创意设计包括哪些工具
  • 网站建设基本费用牡丹江建设网站
  • 东莞建网站平台智慧旅游网站开发与设计
  • iis7 发布静态网站手机怎么做钓鱼网站
  • 湖南邵阳建设局网站wordpress后台打开太慢
  • 商务网站创建多少钱做网站运营需要具备哪些能力
  • 网站前端做报名框代码北京企业建站技术
  • 郑州网站开发比较好的网络公司网站开发与设计作业
  • 南通网站推广排名商机加盟好项目
  • 沧浪企业建设网站电话怎样才能做网站
  • 网站建设外包给外企域名注册需要多久
  • 建设手机网站平台下载app下载安卓免费
  • 广西南宁电商网站建设深圳高端网站建设公司