Common:
FileIO.cs
using System; using System.Collections.Generic; //using System.Linq; using System.Web; using System.IO; using System.Text; namespace SMS.Util { #region FileIo public class FileIO { private FileStream fsw; private StreamWriter sw; private string Charset = "UTF-8"; public FileIO() { } public FileIO(string charset) { Charset = charset; } private void CreateDir(string filePath) { string dirPath = System.IO.Path.GetDirectoryName(filePath); if (!Directory.Exists(dirPath)) { Directory.CreateDirectory(dirPath); } } public void OpenWriteFile(string filePath) { try { if (!File.Exists(filePath)) { CreateDir(filePath); File.Create(filePath).Close(); fsw = new FileStream(filePath, FileMode.Append, FileAccess.Write, FileShare.ReadWrite); sw = new StreamWriter(fsw, Encoding.GetEncoding(Charset)); } else { fsw = new FileStream(filePath, FileMode.Append, FileAccess.Write, FileShare.ReadWrite); sw = new StreamWriter(fsw, Encoding.GetEncoding(Charset)); } } catch { } } public void CloseWriteFile() { if (fsw != null) { fsw.Close(); } } public void WriteLine(string s) { if (sw != null) { sw.WriteLine(s); sw.Flush(); } } private FileStream fsr; private StreamReader sr; public void OpenReadFile(string filePath) { if (!File.Exists(filePath)) { CreateDir(filePath); File.Create(filePath).Close(); } fsr = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Read, FileShare.ReadWrite); sr = new StreamReader(fsr, Encoding.GetEncoding(Charset)); } public void CloseReadFile() { if (fsr != null) fsr.Close(); } public string ReadLine() { if (sr.EndOfStream) return null; return sr.ReadLine(); } public string ReadToEnd() { if (sr.EndOfStream) { return null; } return sr.ReadToEnd(); } public bool IsEof() { return sr.EndOfStream; } }//ClassEnd #endregion }
FileItem.cs
using System; using System.Collections.Generic; //using System.Linq; using System.Text; using System.IO; namespace SMS.Util { /// <summary> /// 文件元数据。 /// 可以使用以下几种构造方法: /// 本地路径:new FileItem("C:/temp.jpg"); /// 本地文件:new FileItem(new FileInfo("C:/temp.jpg")); /// 字节流:new FileItem("abc.jpg", bytes); /// </summary> public class FileItem { private string fileName; private string mimeType; private byte[] content; private FileInfo fileInfo; /// <summary> /// 基于本地文件的构造器。 /// </summary> /// <param name="fileInfo">本地文件</param> public FileItem(FileInfo fileInfo) { if (fileInfo == null || !fileInfo.Exists) { throw new ArgumentException("fileInfo is null or not exists!"); } this.fileInfo = fileInfo; } /// <summary> /// 基于本地文件全路径的构造器。 /// </summary> /// <param name="filePath">本地文件全路径</param> public FileItem(string filePath) : this(new FileInfo(filePath)) { } /// <summary> /// 基于文件名和字节流的构造器。 /// </summary> /// <param name="fileName">文件名称(服务端持久化字节流到磁盘时的文件名)</param> /// <param name="content">文件字节流</param> public FileItem(string fileName, byte[] content) { if (string.IsNullOrEmpty(fileName)) throw new ArgumentNullException("fileName"); if (content == null || content.Length == 0) throw new ArgumentNullException("content"); this.fileName = fileName; this.content = content; } /// <summary> /// 基于文件名、字节流和媒体类型的构造器。 /// </summary> /// <param name="fileName">文件名(服务端持久化字节流到磁盘时的文件名)</param> /// <param name="content">文件字节流</param> /// <param name="mimeType">媒体类型</param> public FileItem(string fileName, byte[] content, string mimeType) : this(fileName, content) { if (string.IsNullOrEmpty(mimeType)) throw new ArgumentNullException("mimeType"); this.mimeType = mimeType; } public string GetFileName() { if (this.fileName == null && this.fileInfo != null && this.fileInfo.Exists) { this.fileName = this.fileInfo.FullName; } return this.fileName; } public string GetMimeType() { if (this.mimeType == null) { this.mimeType = GetMimeType(GetContent()); } return this.mimeType; } /// <summary> /// 获取文件的真实后缀名。目前只支持JPG, GIF, PNG, BMP四种图片文件。 /// </summary> /// <param name="fileData">文件字节流</param> /// <returns>JPG, GIF, PNG or null</returns> public static string GetFileSuffix(byte[] fileData) { if (fileData == null || fileData.Length < 10) { return null; } if (fileData[0] == ‘G‘ && fileData[1] == ‘I‘ && fileData[2] == ‘F‘) { return "GIF"; } else if (fileData[1] == ‘P‘ && fileData[2] == ‘N‘ && fileData[3] == ‘G‘) { return "PNG"; } else if (fileData[6] == ‘J‘ && fileData[7] == ‘F‘ && fileData[8] == ‘I‘ && fileData[9] == ‘F‘) { return "JPG"; } else if (fileData[0] == ‘B‘ && fileData[1] == ‘M‘) { return "BMP"; } else { return null; } } /// <summary> /// 获取文件的真实媒体类型。目前只支持JPG, GIF, PNG, BMP四种图片文件。 /// </summary> /// <param name="fileData">文件字节流</param> /// <returns>媒体类型</returns> public static string GetMimeType(byte[] fileData) { string suffix = GetFileSuffix(fileData); string mimeType; switch (suffix) { case "JPG": mimeType = "image/jpeg"; break; case "GIF": mimeType = "image/gif"; break; case "PNG": mimeType = "image/png"; break; case "BMP": mimeType = "image/bmp"; break; default: mimeType = "application/octet-stream"; break; } return mimeType; } /// <summary> /// 根据文件后缀名获取文件的媒体类型。 /// </summary> /// <param name="fileName">带后缀的文件名或文件全名</param> /// <returns>媒体类型</returns> public static string GetMimeType(string fileName) { string mimeType; fileName = fileName.ToLower(); if (fileName.EndsWith(".bmp", StringComparison.CurrentCulture)) { mimeType = "image/bmp"; } else if (fileName.EndsWith(".gif", StringComparison.CurrentCulture)) { mimeType = "image/gif"; } else if (fileName.EndsWith(".jpg", StringComparison.CurrentCulture) || fileName.EndsWith(".jpeg", StringComparison.CurrentCulture)) { mimeType = "image/jpeg"; } else if (fileName.EndsWith(".png", StringComparison.CurrentCulture)) { mimeType = "image/png"; } else { mimeType = "application/octet-stream"; } return mimeType; } public byte[] GetContent() { if (this.content == null && this.fileInfo != null && this.fileInfo.Exists) { using (System.IO.Stream fileStream = this.fileInfo.OpenRead()) { this.content = new byte[fileStream.Length]; fileStream.Read(content, 0, content.Length); } } return this.content; } } }
Logger.cs
using System; using System.Collections.Generic; //using System.Linq; using System.Web; namespace SMS.Util { public class Logger { #region 写文本日志 /// <summary> /// 写文本日志 /// </summary> /// <param name="Content"></param> /// <param name="logFilePath"></param> public static void WriteTxtLog(string Content, string logFilePath) { try { string fileName = logFilePath; string br = "\r\n"; string content = Content; FileIO fIO = new FileIO(); fIO.OpenWriteFile(fileName); fIO.WriteLine(content + br + br + "*******************************************************" + br); fIO.CloseWriteFile(); } catch { } } /// <summary> /// 写文本日志 /// </summary> /// <param name="Content"></param> public static void WriteTxtLog(string Content) { try { string fileName = System.AppDomain.CurrentDomain.BaseDirectory; if (!fileName.EndsWith("\\")) { fileName += "\\"; } fileName += "Log\\"; fileName += System.DateTime.Now.ToString("yyyy-MM-dd-HH") + ".txt"; string br = "\r\n"; string content = Content; FileIO fIO = new FileIO(); fIO.OpenWriteFile(fileName); fIO.WriteLine(content + br + br + "*******************************************************" + br); fIO.CloseWriteFile(); } catch { } } /// <summary> /// 写文本日志 /// </summary> /// <param name="Ex"></param> public static void WriteTxtLog(Exception Ex) { try { string fileName = System.AppDomain.CurrentDomain.BaseDirectory; if (!fileName.EndsWith("\\")) { fileName += "\\"; } fileName += "Log\\"; fileName += System.DateTime.Now.ToString("yyyy-MM-dd") + ".txt"; string blank = " "; string br = "\r\n"; string content = string.Empty; //content += "客户端IP:" + ClientIP; //content += br + "客户端操作系统:" + ClientPlatform; //content += br + "客户端浏览器:" + ClientBrowser; //content += br + "服务器计算机名:" + System.Net.Dns.GetHostName(); //content += br + "发生时间:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); //content += br + "引发页面:" + System.Web.HttpContext.Current.Request.Url.ToString(); //content += br + "异常对象:" + Ex.Source; //content += br + "异常信息:" + Ex.Message; //content += br + "异常方法:" + Ex.TargetSite; //content += br + "错误详细信息:"; content += br + blank + Ex.ToString(); FileIO fIO = new FileIO(); fIO.OpenWriteFile(fileName); fIO.WriteLine(content + br + br + "*******************************************************" + br); fIO.CloseWriteFile(); } catch { } } #endregion #region 客户端IP /// <summary> /// 客户端IP /// </summary> private static string ClientIP { get { string result = String.Empty; result = System.Web.HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"]; if (null == result || result == String.Empty) { result = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; } if (null == result || result == String.Empty) { result = System.Web.HttpContext.Current.Request.UserHostAddress; } if (null == result || result == String.Empty) { return "0.0.0.0"; } return result; } } #endregion #region 客户端使用平台的名字 /// <summary> /// 客户端使用平台的名字 /// </summary> private static string ClientPlatform { get { try { return System.Web.HttpContext.Current.Request.Browser.Platform.ToString(); } catch { } { return ""; } } } #endregion #region 客户端浏览器 /// <summary> /// 客户端浏览器 /// </summary> private static string ClientBrowser { get { try { System.Web.HttpBrowserCapabilities bc = System.Web.HttpContext.Current.Request.Browser; return bc.Browser + " v." + bc.Version; } catch { return ""; } } } #endregion }//ClassEnd }
Tools.cs
/* * 微信公众平台C#版SDK * www.qq8384.com 版权所有 * 有任何疑问,请到官方网站:www.qq8484.com查看帮助文档 * 您也可以联系QQ1397868397咨询 * QQ群:124987242、191726276、234683801、273640175、234684104 */ using System; using System.Collections.Generic; //using System.Linq; using System.Text; //using System.Web.Script.Serialization; using System.Xml; namespace Weixin.Mp.Sdk.Util { /// <summary> /// 辅助工具类 /// </summary> public class Tools { #region 获取Json string某节点的值。 /// <summary> /// 获取Json string某节点的值。 /// </summary> /// <param name="json"></param> /// <param name="key"></param> /// <returns></returns> public static string GetJosnValue(string jsonStr, string key) { string result = string.Empty; if (!string.IsNullOrEmpty(jsonStr)) { key = "\"" + key.Trim(‘"‘) + "\""; int index = jsonStr.IndexOf(key) + key.Length + 1; if (index > key.Length + 1) { //先截逗号,若是最后一个,截“}”号,取最小值 int end = jsonStr.IndexOf(‘,‘, index); if (end == -1) { end = jsonStr.IndexOf(‘}‘, index); } //index = json.IndexOf(‘"‘, index + key.Length + 1) + 1; result = jsonStr.Substring(index, end - index); //过滤引号或空格 result = result.Trim(new char[] { ‘"‘, ‘ ‘, ‘\‘‘ }); } } return result; } #endregion /// <summary> /// datetime转换成unixtime /// </summary> /// <param name="time"></param> /// <returns></returns> public static long ConvertDateTimeInt(System.DateTime time) { System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); return (long )(time - startTime).TotalSeconds; } /// <summary> /// 将Unix时间戳转换为DateTime类型时间 /// </summary> /// <param name="d"></param> /// <returns></returns> public static System.DateTime ConvertIntDateTime(double d) { System.DateTime time = System.DateTime.MinValue; System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); time = startTime.AddSeconds(d); return time; } /// <summary> /// Json序列化对象 /// </summary> /// <typeparam name="ObjType"></typeparam> /// <param name="obj"></param> /// <returns></returns> //public static string ToJsonString<ObjType>(ObjType obj) where ObjType : class //{ // //JavaScriptSerializer jsonSerializer = new JavaScriptSerializer(); // //string s = jsonSerializer.Serialize(obj); // //return s; //} //操作xml // public } }
WebUtils.cs
using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Net; using System.Text; using System.Web; using System.Net.Security; using System.Security.Authentication; using System.Security.Cryptography.X509Certificates; namespace SMS.Util { /// <summary> /// 网络工具类。 /// </summary> public sealed class WebUtils { private int _timeout = 100000; /// <summary> /// 请求与响应的超时时间 /// </summary> public int Timeout { get { return this._timeout; } set { this._timeout = value; } } /// <summary> /// 执行HTTP POST请求。 /// </summary> /// <param name="url">请求地址</param> /// <param name="postData">post数据</param> /// <returns>HTTP响应</returns> public string DoPost(string url, string postData) { HttpWebRequest req = GetWebRequest(url, "POST"); req.ContentType = "application/x-www-form-urlencoded;charset=utf-8"; byte[] bytePostData = Encoding.UTF8.GetBytes(postData); System.IO.Stream reqStream = req.GetRequestStream(); reqStream.Write(bytePostData, 0, bytePostData.Length); reqStream.Close(); HttpWebResponse rsp = (HttpWebResponse)req.GetResponse(); if (string.IsNullOrEmpty(rsp.CharacterSet)) { return GetResponseAsString(rsp, Encoding.UTF8); } else { Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet); return GetResponseAsString(rsp, encoding); } } /// <summary> /// 执行HTTP POST请求。 /// </summary> /// <param name="url">请求地址</param> /// <param name="parameters">请求参数</param> /// <returns>HTTP响应</returns> public string DoPost(string url, IDictionary<string, string> parameters) { HttpWebRequest req = GetWebRequest(url, "POST"); req.ContentType = "application/x-www-form-urlencoded;charset=utf-8"; byte[] postData = Encoding.UTF8.GetBytes(BuildQuery(parameters)); System.IO.Stream reqStream = req.GetRequestStream(); reqStream.Write(postData, 0, postData.Length); reqStream.Close(); HttpWebResponse rsp = (HttpWebResponse)req.GetResponse(); if (string.IsNullOrEmpty(rsp.CharacterSet)) { return GetResponseAsString(rsp, Encoding.UTF8); } else { Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet); return GetResponseAsString(rsp, encoding); } } /// <summary> /// 执行HTTP GET请求。 /// </summary> /// <param name="url">请求地址</param> /// <param name="parameters">请求参数</param> /// <returns>HTTP响应</returns> public string DoGet(string url, IDictionary<string, string> parameters) { if (parameters != null && parameters.Count > 0) { if (url.Contains("?")) { url = url + "&" + BuildQuery(parameters); } else { url = url + "?" + BuildQuery(parameters); } } // writeBin("-------------------------第二次读取url:" + url); HttpWebRequest req = GetWebRequest(url, "GET"); // writeBin("-------------------------11"+req); req.ContentType = "application/x-www-form-urlencoded;charset=utf-8"; // // writeBin("-------------------------22" + req); if (req != null) { // writeBin("--------------------req不为空---------------"); //writeBin(req.ToString()); } else { // writeBin("------------------req为空了-------"); // writeBin(req.ToString()); } HttpWebResponse rsp = (HttpWebResponse)req.GetResponse(); //writeBin("-------------------------33"); if (string.IsNullOrEmpty(rsp.CharacterSet)) { //writeBin("-------------------------repSet为空:"+rsp); return GetResponseAsString(rsp, Encoding.UTF8); } else { //writeBin("-------------------------repSetNo空:"+rsp.CharacterSet); Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet); return GetResponseAsString(rsp, encoding); } } public void writeBin(string texts) { //获取路径 string LoginPath = AppDomain.CurrentDomain.BaseDirectory + "\\AsyncMemberinfo.bin"; //服务器一切正常 FileStream fs = new FileStream(LoginPath, FileMode.Append); StringBuilder sbu = new StringBuilder(); sbu.AppendLine(texts); BinaryWriter bwrite = new BinaryWriter(fs, System.Text.Encoding.Default); bwrite.Write(sbu.ToString()); bwrite.Flush(); fs.Close(); } /// <summary> /// 执行带文件上传的HTTP POST请求。 /// </summary> /// <param name="url">请求地址</param> /// <param name="textParams">请求文本参数</param> /// <param name="fileParams">请求文件参数</param> /// <returns>HTTP响应</returns> public string DoPost(string url, IDictionary<string, string> textParams, IDictionary<string, FileItem> fileParams) { // 如果没有文件参数,则走普通POST请求 if (fileParams == null || fileParams.Count == 0) { return DoPost(url, textParams); } string boundary = DateTime.Now.Ticks.ToString("X"); // 随机分隔线 HttpWebRequest req = GetWebRequest(url, "POST"); req.ContentType = "multipart/form-data;charset=utf-8;boundary=" + boundary; System.IO.Stream reqStream = req.GetRequestStream(); byte[] itemBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "\r\n"); byte[] endBoundaryBytes = Encoding.UTF8.GetBytes("\r\n--" + boundary + "--\r\n"); // 组装文本请求参数 string textTemplate = "Content-Disposition:form-data;name=\"{0}\"\r\nContent-Type:text/plain\r\n\r\n{1}"; IEnumerator<KeyValuePair<string, string>> textEnum = textParams.GetEnumerator(); while (textEnum.MoveNext()) { string textEntry = string.Format(textTemplate, textEnum.Current.Key, textEnum.Current.Value); byte[] itemBytes = Encoding.UTF8.GetBytes(textEntry); reqStream.Write(itemBoundaryBytes, 0, itemBoundaryBytes.Length); reqStream.Write(itemBytes, 0, itemBytes.Length); } // 组装文件请求参数 string fileTemplate = "Content-Disposition:form-data;name=\"{0}\";filename=\"{1}\"\r\nContent-Type:{2}\r\n\r\n"; IEnumerator<KeyValuePair<string, FileItem>> fileEnum = fileParams.GetEnumerator(); while (fileEnum.MoveNext()) { string key = fileEnum.Current.Key; FileItem fileItem = fileEnum.Current.Value; string fileEntry = string.Format(fileTemplate, key, fileItem.GetFileName(), fileItem.GetMimeType()); byte[] itemBytes = Encoding.UTF8.GetBytes(fileEntry); reqStream.Write(itemBoundaryBytes, 0, itemBoundaryBytes.Length); reqStream.Write(itemBytes, 0, itemBytes.Length); byte[] fileBytes = fileItem.GetContent(); reqStream.Write(fileBytes, 0, fileBytes.Length); } reqStream.Write(endBoundaryBytes, 0, endBoundaryBytes.Length); reqStream.Close(); HttpWebResponse rsp = (HttpWebResponse)req.GetResponse(); Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet); return GetResponseAsString(rsp, encoding); } public bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { //直接确认,否则打不开 //writeBin("进入内部服务器"); // writeBin("内部分析器:" + sender + "X509Certificate:" + certificate + "X509Chain:" + chain + "SslPolicyErrors:" + errors); return true; } public HttpWebRequest GetWebRequest(string url, string method) { HttpWebRequest req = null; if (url.Contains("https")) { ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); req = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url)); } else { req = (HttpWebRequest)WebRequest.Create(url); } req.ServicePoint.Expect100Continue = false; req.Method = method; req.KeepAlive = true; req.UserAgent = "WeixinMpSdk"; req.Timeout = this._timeout; return req; } /// <summary> /// 把响应流转换为文本。 /// </summary> /// <param name="rsp">响应流对象</param> /// <param name="encoding">编码方式</param> /// <returns>响应文本</returns> public string GetResponseAsString(HttpWebResponse rsp, Encoding encoding) { System.IO.Stream stream = null; StreamReader reader = null; try { // 以字符流的方式读取HTTP响应 stream = rsp.GetResponseStream(); reader = new StreamReader(stream, encoding); return reader.ReadToEnd(); } finally { // 释放资源 if (reader != null) reader.Close(); if (stream != null) stream.Close(); if (rsp != null) rsp.Close(); } } /// <summary> /// 组装GET请求URL。 /// </summary> /// <param name="url">请求地址</param> /// <param name="parameters">请求参数</param> /// <returns>带参数的GET请求URL</returns> public string BuildGetUrl(string url, IDictionary<string, string> parameters) { if (parameters != null && parameters.Count > 0) { if (url.Contains("?")) { url = url + "&" + BuildQuery(parameters); } else { url = url + "?" + BuildQuery(parameters); } } return url; } /// <summary> /// 组装普通文本请求参数。 /// </summary> /// <param name="parameters">Key-Value形式请求参数字典</param> /// <returns>URL编码后的请求数据</returns> public static string BuildQuery(IDictionary<string, string> parameters) { StringBuilder postData = new StringBuilder(); bool hasParam = false; IEnumerator<KeyValuePair<string, string>> dem = parameters.GetEnumerator(); while (dem.MoveNext()) { string name = dem.Current.Key; string value = dem.Current.Value; // 忽略参数名或参数值为空的参数 if (!string.IsNullOrEmpty(name) && !string.IsNullOrEmpty(value)) { if (hasParam) { postData.Append("&"); } postData.Append(name); postData.Append("="); postData.Append(HttpUtility.UrlEncode(value, Encoding.UTF8)); hasParam = true; } } return postData.ToString(); } private static bool DownloadQrCode(string url, string saveDir, out string saveFileName, out string errHtml) { Stream outStream = null; WebClient wc = null; errHtml = string.Empty; if (!saveDir.EndsWith("\\")) { saveDir += "\\"; } saveFileName = saveDir + System.Guid.NewGuid().ToString() + ".jpg"; try { wc = new WebClient(); var data = wc.DownloadData(url); if (File.Exists(saveFileName)) File.Delete(saveFileName); outStream = System.IO.File.Create(saveFileName); foreach (var b in data) { outStream.WriteByte(b); } return true; } catch (Exception ex) { errHtml = ex.Message; return false; } finally { if (wc != null) { wc.Dispose(); } if (outStream != null) { outStream.Close(); } } } public bool DownloadFile(string url, string saveDir, out string saveFileName,out string errHtml) { if (url.IndexOf("showqrcode") != -1) { return DownloadQrCode(url, saveDir, out saveFileName, out errHtml); } saveFileName = string.Empty; errHtml = string.Empty; bool isSuc = false; HttpWebResponse response = null; HttpWebRequest request = null; try { request = GetWebRequest(url, "GET"); // if (url.IndexOf("showqrcode") != -1) //{ // request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:26.0) Gecko/20100101 Firefox/26.0"; //} response = (HttpWebResponse)request.GetResponse(); if (!response.ContentType.ToLower().StartsWith("text/")) { string disp = response.Headers.Get("Content-disposition"); string ext = disp.Substring(disp.LastIndexOf(".")); ext = ext.Substring(0, ext.Length - 1); saveFileName = saveDir; if (!saveFileName.EndsWith("\\")) { saveFileName += "\\"; } saveFileName = saveFileName + System.Guid.NewGuid().ToString() + ext; SaveBinaryFile(response, saveFileName); isSuc = true; } else { if (string.IsNullOrEmpty(response.CharacterSet)) { errHtml = GetResponseAsString(response, Encoding.UTF8); } else { Encoding encoding = Encoding.GetEncoding(response.CharacterSet); errHtml = GetResponseAsString(response, encoding); } isSuc = false; } } finally { if (response != null) { response.Close(); } if (request != null) { request = null; } } return isSuc; } // 将二进制文件保存到磁盘 private static bool SaveBinaryFile(WebResponse response, string FileName) { bool Value = true; byte[] buffer = new byte[1024]; try { if (File.Exists(FileName)) File.Delete(FileName); Stream outStream = System.IO.File.Create(FileName); Stream inStream = response.GetResponseStream(); int l; do { l = inStream.Read(buffer, 0, buffer.Length); if (l > 0) outStream.Write(buffer, 0, l); } while (l > 0); outStream.Close(); inStream.Close(); } catch { Value = false; } return Value; } } //class end }
JsonTest.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using Newtonsoft.Json; namespace WebTest.Common { public class JsonTest<T> where T:new() { public static T jsonToOrder(string jsons) { T t = JsonConvert.DeserializeObject<T>(jsons); return t; } } }
TestDemo1.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestDemo1.aspx.cs" Inherits="WebTest.TestDemo1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script> </head> <body> <form id="form1" runat="server"> <div> <input id="userToken" type="text" runat="server" /> <%-- <input id="submitOK" type="button" onclick="return subAsync();">--%> <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" /> </div> </form> </body> </html> <script type="text/javascript"> function subAsync() { var userMes = $("#userToken").val(); $.ajax({ url: "http://member.joycp.com/ajax/takemoney.ashx?requestType=1&j_token=" + userMes, type: "get", async: false, dataType:"jsonp", success: function (data) { if (data != "") { alert(data); } else { alert("数据为空了"); } }, error: function () { alert("出错了!"); } }); } </script>
TestDemo1.aspx.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using WebTest.Common; namespace WebTest { public partial class TestDemo1 : System.Web.UI.Page { private string myTooken = ""; protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { myTooken += this.userToken.Value; SMS.Util.WebUtils uti = new SMS.Util.WebUtils(); string s = uti.DoGet(myTooken, null); newModel mode = JsonTest<newModel>.jsonToOrder(s); Response.Write("状态:" + mode.Stat + "||消息:" + mode.Msg + "||时间:" + mode.Data); } } public class newModel { public int Stat { get; set; } public string Msg { get; set; } public string Data { get; set; } } }
时间: 2024-10-01 12:51:28