C# 获取必应每日一图

2017年5月16日 0 作者 snowysong@live.com
阅读需要2分钟

 0x00.添加引用

using System;
using System.Net.Http;
using System.Threading.Tasks;
using Windows.Networking.BackgroundTransfer;
using Windows.Storage;
using System.Xml;

0x01.模仿请求

public static Task< bool> GetBingPics()
{
    return Task.Run(async () =>
     {
         string temp = "http://cn.bing.com/HPImageArchive.aspx?idx=0&n=1";
         string downtemp = "http://cn.bing.com";
         string baseurlexp = "//images/image/url";
         string copyrightexp = "//images/image/copyright";
         string dateexp = "//images/image/enddate";

         HttpClient request = new HttpClient();
         {
             request.DefaultRequestHeaders.Add("Accept", "application/json, text/javascript, */*; q=0.01");
             request.DefaultRequestHeaders.Add("UserAgent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0");
             request.DefaultRequestHeaders.Add("Accept-Encoding", "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3");
             request.DefaultRequestHeaders.Add("Accept-Language", "gzip, deflate");
         }//填写请求头

         try
         {
             HttpResponseMessage response = request.GetAsync(temp).Result;
             string xmlstr = response.Content.ReadAsStringAsync().Result;
             XmlDocument doc = new XmlDocument();
             doc.LoadXml(xmlstr);

             XmlElement root = null;
             root = doc.DocumentElement;

             XmlNode xmlNode = root.SelectSingleNode(baseurlexp);
             XmlNode xmlNode1 = root.SelectSingleNode(copyrightexp);
             XmlNode xmlNode2 = root.SelectSingleNode(dateexp);
             string baseurl = xmlNode.InnerText;
             string copyrighturl = xmlNode1.InnerText;
             string date = xmlNode2.InnerText;
             string plus = "." + baseurl.Split('.')[1];

             BackgroundDownloader backgroundDownload = new BackgroundDownloader();

             StorageFolder folder = await KnownFolders.PicturesLibrary.CreateFolderAsync("BingPics", CreationCollisionOption.OpenIfExists);
             StorageFile newFile = await folder.CreateFileAsync(date + plus, CreationCollisionOption.OpenIfExists);

             Uri uri = new Uri(downtemp + baseurl);
             DownloadOperation download = backgroundDownload.CreateDownload(uri, newFile);

             await download.StartAsync();
             return true;
         }
         catch
         {
             return false;
         }
     });
}

 

0 0 vote
Article Rating