[笔记]C#呼叫API取得JSON资料

原本是在JavaScript中使用AJAX取回资料并做处理,再把处理过的资料跟表单一起送出,
但因为好像会有安全性的问题,改成在后端实作来达到一样的效果,
有点不知道该怎么注解,就先记录下来

原本在前端呼叫所取回的资料:
{ "message": "档案资讯", "files": [ { "Id": 123, "FileName": "测试图.png", "CreateTime": "2020-05-25T14:25:44.857", "Status": "未扫毒" } ] }

需要用到的资料有"Id"跟"FileName"

在程式码中加入类别,虽然不需用到"CreateTime"跟"Status",但回传多少栏位就要完整宣告

 public class JsonVO {    public string message { get; set; }    public List<files> files { get; set; } }  public class files {    public string Id { get; set; }    public string FileName { get; set; }    public string CreateTime { get; set; }    public string Status { get; set; }   }

Using

using System.Net;using System.Net.Security;using System.Security.Cryptography.X509Certificates;

主要程式码

   private String GetFileContent()        {            string content_str = string.Empty;            try            {                       string rssContent = string.Empty;                             ServicePointManager.ServerCertificateValidationCallback += ValidateRemoteCertificate;                ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;                using (WebClient wc = new WebClient())                {                    wc.Encoding = Encoding.GetEncoding("utf-8");                    rssContent = wc.DownloadString(----这边放自己的url----);                }                               JsonVO jsonVO = JsonConvert.DeserializeObject<JsonVO>(rssContent);                if (jsonVO != null)                {                 //取回资料并做处理                    for (var i = 0; i <= jsonVO.files.Count - 1; i++)                    {                        content_str += "ID = " + jsonVO.files[i].Id + ",FileName = " + jsonVO.files[i].FileName;                    }                                   }            }            catch (Exception ex)            {                           }            return content_str;        }
private bool ValidateRemoteCertificate(object sender, X509Certificate cert, X509Chain chain, SslPolicyErrors error){   if (error == System.Net.Security.SslPolicyErrors.None)   {      return true;   }   Console.WriteLine("X509Certificate [{0}] Policy Error: '{1}'", cert.Subject, error.ToString());   return false;}

关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章