参照官网RestCSharpDemo,完成会议管理的第一个接口

参考官网RestCSharpDemo,完成会议管理的第一个接口

读着官网下载的RestCSharpDemo代码,带着自己的目标:实现语音会议室功能;翻阅了几天的官网各种杂乱的文档。
终于第一步会议室的创建API走通了。
代码大家拿去用吧。希望拿100块钱,报销一下测试期间交的50块/月的费用。 缺少的常用DLL,大家自己引用一下,不然附件传不上来。
附件传不上来,试了各种浏览器,flash。。。,原来BBS域名也要讲究。
直接上链接
http://pan.baidu.com/s/1eQeju5W
参照官网RestCSharpDemo,完成会议管理的第一个接口
/// <summary>
/// 创建会议
/// </summary>
/// <param name="appId">应用ID</param>
/// <param name="maxmember">最大会议人数,不能大于300。默认值为3</param>
/// <returns></returns>
public Entity.CreateConfResp CreateConf(string appId, int maxmember = 3)
{
Entity.CreateConfResp result = new Entity.CreateConfResp();

string date = DateTime.Now.ToString("yyyyMMddhhmmss");

// 构建URL内容
string sigstr = myUntil.MD5Encrypt(myUntil.getConfigValue(config_key_mainAccount) + myUntil.getConfigValue(config_key_mainToken) + date);
string uriStr = string.Format("https://{0}:{1}/{2}/Accounts/{3}/ivr/createconf?sig={4}&maxmember={5}",
myUntil.getConfigValue(config_key_address),
myUntil.getConfigValue(config_key_port),
myUntil.getConfigValue(config_key_softVer),
myUntil.getConfigValue(config_key_mainAccount),
sigstr,
maxmember
);

Uri address = new Uri(uriStr);

// 创建网络请求 
HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;
myUntil util = new myUntil();
util.setCertificateValidationCallBack();

// 构建Head
request.Method = "POST";
request.Accept = "application/xml";
request.ContentType = "application/xml;charset=utf-8";

Encoding myEncoding = Encoding.GetEncoding("utf-8");
byte[] myByte = myEncoding.GetBytes(myUntil.getConfigValue(config_key_mainAccount) + ":" + date);
string authStr = Convert.ToBase64String(myByte);
request.Headers.Add("Authorization", authStr);

StringBuilder sbData = new StringBuilder();
sbData.AppendLine("<?xml version='1.0' encoding='utf-8'?>");
sbData.AppendLine("<Request> ");
sbData.AppendLine("<Appid>" + appId + "</Appid> ");
sbData.AppendLine("<CreateConf maxmember=\"" + maxmember.ToString() + "\"/>");
sbData.AppendLine("</Request>");

string data = sbData.ToString();
byte[] byteData = UTF8Encoding.UTF8.GetBytes(data);


// 开始请求
using (Stream postStream = request.GetRequestStream())
{
postStream.Write(byteData, 0, byteData.Length);
}

string respStr = string.Empty;

// 获取请求
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
// Get the response stream 
StreamReader reader = new StreamReader(response.GetResponseStream());
string responseStr = reader.ReadToEnd();

respStr = responseStr;
}

/*
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response>
<statusCode>000000</statusCode>
<confid>80021212345678910</confid>
</Response>
*/

//获取statusCode和confid
result.StatusCode = myUntil.getXmlValueByXPath("/Response/statusCode",respStr);
result.ConfId = myUntil.getXmlValueByXPath("/Response/confid", respStr);

return result;
}

------解决方案--------------------
学习了参照官网RestCSharpDemo,完成会议管理的第一个接口