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