• c# 针对SAP服务通讯


    对于sap完全没有概念。 不知道是什么,也不想了解过多。还是像针对一个技能好好的研究一下。

    年前的一个项目遇到c#调用SAP来实现一些业务逻辑对于我这个门外汉确实有点摸不着头闹。捋顺一下思路。 、

    结果发现SAP提供的服务是一个wsdl这玩应TTMD的熟了。 也不知道是webservice还是wcf管他呢。 咱们就用通用的网络方式传递就好了。 

    代码如下:测试OK

    需要大家注意的是在SAP中使用的UserAgent不同我们设置的内容也需要跟着改变。 否则获取不倒数据。

    不难看出掉SAP服务没什么技术难度。 主要还是在于传递的消息头信息。以及其他的相关辅助信息。这些信息没设置错基本上就OK了。 

    private string GetHtml(string url, byte[] byteRequest, NetworkCredential nc)
    {
      try
      {
        var httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
        httpWebRequest.KeepAlive = false;
        httpWebRequest.UserAgent = "Apache-HttpClient/4.1.1 (java 1.5)";
        httpWebRequest.ContentType = " text/xml;charset=UTF-8";
        httpWebRequest.Accept = "gzip,deflate";
        httpWebRequest.ContentLength = byteRequest.Length;
        httpWebRequest.Method = "Post";
        httpWebRequest.Credentials = nc;
        httpWebRequest.Headers.Add("SOAPAction", "http://sap.com/xi/WebService/soap1.1");
        var stream = httpWebRequest.GetRequestStream();
        stream.Write(byteRequest, 0, byteRequest.Length);
        stream.Close();
        var httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
        var responseStream = httpWebResponse.GetResponseStream();
        if (responseStream != null)
        {
          var streamReader = new StreamReader(responseStream, Encoding.UTF8);
          var html = streamReader.ReadToEnd();
          streamReader.Close();
          responseStream.Close();
          return html;
        }
        return string.Empty;
      }
      catch (WebException ex)
      {
        log.Error(ex.Message);
        return "Get Sap Service Error!";
      }
      catch (Exception e)
      {
        log.Error(ex.Message);
        return "Get Sap Service Error!";
      }
    }
    

     分享是种美德,要提倡!

  • 相关阅读:
    【MVC 4】7.SportsSore:完成购物车
    【MVC 4】6.SportsSore:导航
    【MVC 4】5.SportsSore —— 一个真实的应用程序
    【网络文摘】面试感悟:3年工作经验程序员应有的技能
    【网络文摘】一个大神程序员的使命感究竟应该是什么
    join的简单总结
    模块化(1):基本思路
    Android 9.0新特性
    DataBinding初认识
    Android 7.0 新特性
  • 原文地址:https://www.cnblogs.com/liuyunsheng/p/3747517.html
Copyright © 2020-2023  润新知