MVC HttpWebRequest XML 请求
来源:互联网 发布:python和c 的区别 编辑:程序博客网 时间:2024/06/07 19:27
MVC HttpWebRequest XML类型请求解析数据
public Dictionary<string, object> HttpWebRequestXML(){ try { string date = DateTime.Now.ToString("yyyyMMddhhmmss"); // 构建URL内容 string sigstr = ""; string uriStr = string.Format("https://{0}:{1}/{2}/SubAccounts/{3}/Calls/Callback?sig={4}", "m_restAddress", "", "", "", sigstr); Uri address = new Uri(uriStr); // 创建网络请求 HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest; // 构建Head request.Method = "POST"; Encoding myEncoding = Encoding.GetEncoding("utf-8"); byte[] myByte = myEncoding.GetBytes("123" + ":" + date); string authStr = Convert.ToBase64String(myByte); request.Headers.Add("Authorization", authStr); // 构建Body StringBuilder data = new StringBuilder(); request.Accept = "application/xml"; request.ContentType = "application/xml;charset=utf-8"; data.Append("<?xml version='1.0' encoding='utf-8'?><CallBack>"); data.Append("<from>").Append("from").Append("</from>"); data.Append("<to>").Append("to").Append("</to>"); data.Append("<customerSerNum>").Append("customerSerNum").Append("</customerSerNum>"); data.Append("<fromSerNum>").Append("fromSerNum").Append("</fromSerNum>"); data.Append("<promptTone>").Append("promptTone").Append("</promptTone>"); data.Append("<maxCallTime>").Append("maxCallTime").Append("</maxCallTime>"); data.Append("<hangupCdrUrl>").Append("hangupCdrUrl").Append("</hangupCdrUrl>"); data.Append("</CallBack>"); byte[] byteData = UTF8Encoding.UTF8.GetBytes(data.ToString()); // 开始请求 using (Stream postStream = request.GetRequestStream()) { postStream.Write(byteData, 0, byteData.Length); } // 获取请求 using (HttpWebResponse response = request.GetResponse() as HttpWebResponse) { // Get the response stream StreamReader reader = new StreamReader(response.GetResponseStream()); string responseStr = reader.ReadToEnd(); if (responseStr != null && responseStr.Length > 0) { Dictionary<string, object> responseResult = new Dictionary<string, object> { { "statusCode", "0" }, { "statusMsg", "成功" }, { "data", null } }; XmlDocument resultXml = new XmlDocument(); resultXml.LoadXml(responseStr); XmlNodeList nodeList = resultXml.SelectSingleNode("Response").ChildNodes; foreach (XmlNode item in nodeList) { if (item.Name == "statusCode") { responseResult["statusCode"] = item.InnerText; } else if (item.Name == "statusMsg") { responseResult["statusMsg"] = item.InnerText; } else if (item.Name == "CallBack") { Dictionary<string, object> retData = new Dictionary<string, object>(); foreach (XmlNode subItem in item.ChildNodes) { retData.Add(subItem.Name, subItem.InnerText); } responseResult["data"] = new Dictionary<string, object> { { item.Name, retData } }; } } return responseResult; } return new Dictionary<string, object> { { "statusCode", 172002 }, { "statusMsg", "无返回" }, { "data", null } }; } } catch (Exception e) { throw e; }}
0 0
- MVC HttpWebRequest XML 请求
- HttpWebRequest请求的安全问题
- HttpWebRequest请求的安全问题
- HttpWebRequest 模拟Http请求
- winphone 网络请求HttpWebRequest
- httpwebrequest 请求代码
- C# HttpWebRequest 异步请求
- .net HttpWebRequest Post xml
- HttpWebRequest请求超时的错误
- silverlight HttpWebRequest post请求数据
- HttpWebRequest请求url返回数据
- HttpWebRequest模拟浏览器发送请求
- HttpWebRequest请求超时的错误
- HttpWebRequest发送模拟POST请求
- C# HttpWebRequest提交post请求
- C# Http请求(WebClient,HttpWebRequest)
- [通过HttpWebRequest请求https接口]
- .net HttpWebRequest使用代理请求
- sql 日期相关操作
- 堆排序
- webView自适应屏幕大小
- 6.7JAVA面向对象
- JavaScript验证正则表达式
- MVC HttpWebRequest XML 请求
- RecyclerView
- weblogic中文解决方案
- 层层剖析-activity启动模式以及生命周期
- 设计模式之禅
- 课程设计(数据库)
- 字符集,字符编码和数据结构
- ActiveMQ 即时通讯服务 浅析
- Java初学者都必须理解的六大问题