zoukankan      html  css  js  c++  java
  • Asp.net HTTP提交xml数据,带身份验证

    一、背景介绍

          公司最近上了一套PLM系统,是美国PTC的,大名鼎鼎的。由于内部业务等方面要实现PLM系统和其他原有系统的数据交互。目前PLM官方提供的解决方案是通过excel导入导出进行数据交互,但考虑到实时性,效率,便捷性等方面,否决掉了这个方案。最初打算采用Webservice的方式,在FlexPLM里面搭建webservice,但官方又给了回应,他们所有的二次开发还从未用到过Webservice,所以实现有难度。最后没办法,终于提出了第三套解决方案,通过HTTP协议提交数据,调用API交互数据。

         可能有人问问什么不直接操作数据库?额。。。。。。对于一个操作会涉及18张表的数据库系统,解析相当困难,还是乖乖用API吧,虽然实现起来看似绕了很多弯子,但没办法,老美的软件设计思想和我们就是有差距的。

    二、ASP.Net端(发送请求端实现)

      ①准备XML格式,发送端,接收端协定好xml格式就行,这里省略....

      ②代码实现

        protected string SendRequestwhy(string strXML)
    {
    string str = "";
    //双方协定的XML格式
    Encoding encoding = Encoding.UTF8;
    //接收页面
            string strUrl = "http://192.168.0.46:8008/Windchill/rfa/jsp/material/gateway.jsp";

    byte[] data = encoding.GetBytes(strXML);
    //准备请求...
    HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(strUrl);
    myRequest.Method
    = "POST";
    myRequest.ContentType
    = "text/xml;charset=utf-8";
    myRequest.ContentLength
    = data.Length;
    //身份认证,特别注意,参数用户名,密码
    NetworkCredential cred = new NetworkCredential("wcadmin", "wcadmin");
    myRequest.Credentials
    = cred;
    //在信息请求头部加入验证信息,不然验证不通过
    myRequest.PreAuthenticate = true;
    Stream newStream
    = myRequest.GetRequestStream();
    //发送数据
    newStream.Write(data, 0, data.Length);
    newStream.Close();
    WebResponse response
    = myRequest.GetResponse();
    Stream resStream
    = response.GetResponseStream();
    StreamReader sr
    = new StreamReader(resStream, System.Text.Encoding.UTF8);
    str
    = sr.ReadToEnd();//接收返回值,返回值可以是xml
    resStream.Close();
    sr.Close();
    return str;
    }

  • 相关阅读:
    第三方驱动备份与还原
    Greenplum 解决 gpstop -u 指令报错
    yum安装(卸载)本地rpm包的方法(卸载本地安装的greenplum 5.19.rpm)
    Java JUC(java.util.concurrent工具包)
    netty 详解(八)基于 Netty 模拟实现 RPC
    netty 详解(七)netty 自定义协议解决 TCP 粘包和拆包
    netty 详解(六)netty 自定义编码解码器
    netty 详解(五)netty 使用 protobuf 序列化
    netty 详解(四)netty 开发 WebSocket 长连接程序
    netty 详解(三)netty 心跳检测机制案例
  • 原文地址:https://www.cnblogs.com/qidian10/p/2085341.html
Copyright © 2011-2022 走看看