跳到主要內容

WCF XML 交易

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;
using System.Xml;
using System.Net;
using System.Web;
using System.IO;

namespace WebexWS
{
    // 注意: 您可以使用 [重構] 功能表上的 [重新命名] 命令同時變更程式碼、svc 和組態檔中的類別名稱 "Service1"。
    // 注意: 若要啟動 WCF 測試用戶端以便測試此服務,請在 [方案總管] 中選取 Service1.svc 或 Service1.svc.cs,然後開始偵錯。
    public class Service1 : IService1
    {
        public string CreateMeeting(string xml, string room)
        {
            string result = postXMLData(GetXmlServer(room), GetRequestXml(xml));
            return result;
        }

        public string DelMeeting(string xml, string room)
        {
            string result = postXMLData(GetXmlServer(room), GetRequestXml(xml));
            return result;
        }

        public string postXMLData(string destinationUrl, string requestXml)
        {
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(destinationUrl);
                byte[] bytes;
                bytes = System.Text.Encoding.UTF8.GetBytes(requestXml);
                request.ContentType = "application/x-www-form-urlencoded;";
                request.ContentLength = bytes.Length;
                request.Method = "POST";
                Stream requestStream = request.GetRequestStream();
                requestStream.Write(bytes, 0, bytes.Length);
                requestStream.Close();
                HttpWebResponse response;
                response = (HttpWebResponse)request.GetResponse();
                if (response.StatusCode == HttpStatusCode.OK)
                {
                    Stream responseStream = response.GetResponseStream();
                    string responseStr = new StreamReader(responseStream).ReadToEnd();
                    return responseStr;
                }
            }
            catch (Exception ex)
            {
                return ex.Message;
            }
            return null;
        }

        private string GetRequestXml(string strXML)
        {
            return "XML=" + HttpUtility.UrlEncode(strXML);
        }

        private string GetXmlServer(string room)
        {
            string server = "";
            switch (room)
            {
                case "A":
                    server = GetXmlServerA();
                    break;
                case "B":
                    server = GetXmlServerB();
                    break;
                case "C":
                    server = GetXmlServerC();
                    break;
                default:
                    server = GetXmlServerC();
                    break;
            }
            return server;
        }

        private string GetXmlServerA()
        {
            //return "https://webex.com/WBXService/xml8.0.0/XMLService";
            return "https://webex.com/WBXService/xml10.0.0/XMLService";
        }
        private string GetXmlServerB()
        {
            //return "https://webex.com/WBXService/xml8.0.0/XMLService";
            return "https://webex.com/WBXService/xml10.0.0/XMLService";
        }
        private string GetXmlServerC()
        {
            //return "https://webex.com/WBXService/xml8.0.0/XMLService";
            return "https://webex.com/WBXService/xml10.0.0/XMLService";
        }



    }
}