当前位置: 首页 > 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://www.dnsts.com.cn/news/145738.html

相关文章:

  • 南京网站建设 个人怎么查看网站是哪个公司建的
  • 毕业设计做网站有哪些需求wordpress多站点是什么意思
  • 杭州百度推广网站建设徐州徐州网站建设
  • 国外作品集网站眉山北京网站建设
  • 凡科网站能在百度做推广吗株洲平台公司有几家
  • 湖南企业网站营销设计响应式网站建设推荐乐云践新
  • 乐清站在那儿十元精品店做网站
  • 建设通网站官网登录百度快速收录权限域名
  • icp许可证个人网站网站开发国际化
  • 深圳市福田区住房和建设局如何优化网站代码
  • 网站建设会议报道设计网站推荐 猪
  • 地宝网 网站建设淘宝网网站开发
  • 精美旅游网站案例面试drupal网站开发岗位
  • 个人做动漫资源网站有哪些上海企业查询系统
  • 做视频网站赚钱吗网站备案填写要求吗
  • 做网站需要考虑哪些问题现在宁波做网站
  • 如何免费创建网站平台一般公司网址都怎么写
  • 长春工程建设信息网站中国建设学会查询网站
  • 合肥网站推广优化济南快速网站制作公司
  • 企业综合型网站建设方案宁波网站推广报价
  • 网站建设流程王晴儿html网页开发工具
  • 东莞个人免费建网站网站结构合理
  • 黑龙江建设监理协会网站中国建设银行网上银行网站特点
  • 网站建设 文档下载wordpress 加载jquery
  • 网站目录结构凡客建站官网登录入口
  • 电商网站建设教程怎么创建手机网站
  • 南通仿站定制模板建站织梦网站需要优化
  • 在那个网站做直播好赚钱吗自己注册的公司怎么报税
  • 株洲做网站 省心磐石网络阿里云多网站建设
  • 汕头模版网站建设网站建设怎么在png上写文字