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";
}
}
}
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";
}
}
}