.net core读取leancloud上的数据
public IActionResult Index() { try { string url = "https://xxxx.xxx.net/1.1/classes/guestbook?order=-createdAt&count=1"; string leancloud_appid = "dJzCJfdsfdsoHsz"; string leancloud_appkey = "eggw223fdsWr2u2vNFxv"; Dictionary<string, string> heads = new Dictionary<string, string>(); heads.Add("X-LC-Id", leancloud_appid); heads.Add("X-LC-Key", leancloud_appkey); string retstr = Util.HttpService.Get(url, heads); Model.GuestBook_LeanReturn retm = Newtonsoft.Json.JsonConvert.DeserializeObject<Model.GuestBook_LeanReturn>(retstr); ViewBag.totalcount = retm.count; return View(retm.results); } catch (Exception ex) { return Content("出错:"+ex.Message); } }
using System; namespace Niunan.Admin.Model { public class GuestBook_LeanReturn { public List<GuestBook_LeanReturnInner> results { set; get; } public int count { set; get; } } public class GuestBook_LeanReturnInner { public string lianxi { set; get; } public string body { set; get; } public DateTime createdAt { set; get; } public string objectId { set; get; } } }
用的rest api的方法来查数据的,具体可查官方文档
https://docs.leancloud.cn/sdk/storage/guide/rest/
分页的话可以在url里加上&limit=10&sikp=5
工具类的代码如下:
using System; using System.Net; using System.Net.Security; using System.Security.Cryptography.X509Certificates; using System.Text; namespace Niunan.Admin.Util { public class HttpService { public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { //直接确认,否则打不开 return true; } /// <summary> /// post提交 /// </summary> /// <param name="xml"></param> /// <param name="url"></param> /// <param name="isUseCert"></param> /// <param name="timeout"></param> /// <param name="contenttype">如:application/x-www-form-urlencoded,text/xml</param> /// <param name="heads">头信息</param> /// <returns></returns> public static string Post(string xml, string url, bool isUseCert, int timeout, string contenttype = "application/x-www-form-urlencoded", Dictionary<string, string> heads = null) { System.GC.Collect();//垃圾回收,回收没有正常关闭的http连接 string result = "";//返回结果 System.Net.HttpWebRequest request = null; System.Net.HttpWebResponse response = null; Stream reqStream = null; try { //设置最大连接数 ServicePointManager.DefaultConnectionLimit = 200; //设置https验证方式 if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase)) { ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); } /*************************************************************** * 下面设置HttpWebRequest的相关属性 * ************************************************************/ request = (HttpWebRequest)WebRequest.Create(url); request.Method = "POST"; request.Timeout = timeout * 1000; if (heads != null) { foreach (var item in heads.Keys) { request.Headers.Add(item, heads[item]); } } //设置代理服务器 //WebProxy proxy = new WebProxy(); //定义一个网关对象 //proxy.Address = new Uri(WxPayConfig.PROXY_URL); //网关服务器端口:端口 //request.Proxy = proxy; //设置POST的数据类型和长度 request.ContentType = contenttype; byte[] data = System.Text.Encoding.UTF8.GetBytes(xml); request.ContentLength = data.Length; //是否使用证书 if (isUseCert) { //复制微信DEMO的,这里不用证书 //string path = HttpContext.Current.Request.PhysicalApplicationPath; //X509Certificate2 cert = new X509Certificate2(path + WxPayConfig.SSLCERT_PATH, WxPayConfig.SSLCERT_PASSWORD); //request.ClientCertificates.Add(cert); //Log.Debug("WxPayApi", "PostXml used cert"); } //往服务器写入数据 reqStream = request.GetRequestStream(); reqStream.Write(data, 0, data.Length); reqStream.Close(); //获取服务端返回 response = (HttpWebResponse)request.GetResponse(); //获取服务端返回数据 StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8); result = sr.ReadToEnd().Trim(); sr.Close(); } catch (Exception e) { // Log.Error("HttpService", e.ToString()); throw e; } finally { //关闭连接和流 if (response != null) { response.Close(); } if (request != null) { request.Abort(); } } return result; } /// <summary> /// 处理http GET请求,返回数据 /// </summary> /// <param name="url">请求的url地址</param> /// <returns>http GET成功后返回的数据,失败抛WebException异常</returns> public static string Get(string url, Dictionary<string, string> heads = null) { System.GC.Collect(); string result = ""; System.Net.HttpWebRequest request = null; System.Net.HttpWebResponse response = null; //请求url以获取数据 try { //设置最大连接数 ServicePointManager.DefaultConnectionLimit = 200; //设置https验证方式 if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase)) { ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); } /*************************************************************** * 下面设置HttpWebRequest的相关属性 * ************************************************************/ request = (HttpWebRequest)WebRequest.Create(url); request.Method = "GET"; if (heads != null) { foreach (var item in heads.Keys) { request.Headers.Add(item, heads[item]); } } //设置代理 //WebProxy proxy = new WebProxy(); //proxy.Address = new Uri(WxPayConfig.PROXY_URL); //request.Proxy = proxy; //获取服务器返回 response = (HttpWebResponse)request.GetResponse(); //获取HTTP返回数据 StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8); result = sr.ReadToEnd().Trim(); sr.Close(); } catch (Exception e) { throw e; } finally { //关闭连接和流 if (response != null) { response.Close(); } if (request != null) { request.Abort(); } } return result; } /// <summary> /// http里的delete方式 /// </summary> /// <param name="url"></param> /// <param name="heads"></param> /// <returns></returns> public static string Delete(string url, Dictionary<string, string> heads = null) { System.GC.Collect(); string result = ""; HttpWebRequest request = null; HttpWebResponse response = null; //请求url以获取数据 try { //设置最大连接数 ServicePointManager.DefaultConnectionLimit = 200; //设置https验证方式 if (url.StartsWith("https", StringComparison.OrdinalIgnoreCase)) { ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult); } /*************************************************************** * 下面设置HttpWebRequest的相关属性 * ************************************************************/ request = (HttpWebRequest)WebRequest.Create(url); request.Method = "DELETE"; if (heads != null) { foreach (var item in heads.Keys) { request.Headers.Add(item, heads[item]); } } //设置代理 //WebProxy proxy = new WebProxy(); //proxy.Address = new Uri(WxPayConfig.PROXY_URL); //request.Proxy = proxy; //获取服务器返回 response = (HttpWebResponse)request.GetResponse(); //获取HTTP返回数据 StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8); result = sr.ReadToEnd().Trim(); sr.Close(); } catch (Exception e) { throw e; } finally { //关闭连接和流 if (response != null) { response.Close(); } if (request != null) { request.Abort(); } } return result; } } }
标签:core,heads,string,url,request,response,leancloud,null,net From: https://www.cnblogs.com/niunan/p/17543345.html