BingImage
擷取必應每日一圖及故事
- 擷取圖檔api:http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1
- idx參數:指擷取圖檔的時間,0(指擷取當天圖檔),1(擷取昨天照片),2(擷取前天的圖檔),最多可擷取8天前的照片。
- n參數:指擷取圖檔的數量,n=1,指擷取一張圖檔。
- (也可以通過别的接口,比如:Bing 桌面 API
- 如何将json資料轉化為對象見:c# getpost
- 通路此url後傳回的json資料如下:
{
"images":
[
{"startdate":"20190107",
"fullstartdate":"201901071600",
"enddate":"20190108",
"url":"/az/hprichbg/rb/RainierDawn_ZH-CN9182470816_1920x1080.jpg",
"urlbase":"/az/hprichbg/rb/RainierDawn_ZH-CN9182470816",
"copyright":"瑞尼爾山國家公園,美國華盛頓州 (© Stephen Matera/Tandem Stills + Motion)",
"copyrightlink":"http://www.bing.com/search?q=%E5%9B%BD%E5%AE%B6%E5%85%AC%E5%9B%AD&form=hpcapt&mkt=zh-cn",
"title":"",
"quiz":"/search?q=Bing+homepage+quiz&filters=WQOskey:%22HPQuiz_20190107_RainierDawn%22&FORM=HPQUIZ",
"wp":false,
"hsh":"c295f026b64b45e57248218481629f4e",
"drk":1,
"top":1,
"bot":1,
"hs":[]
}],
"tooltips":
{
"loading":"正在加載...",
"previous":"上一個圖像",
"next":"下一個圖像",
"walle":"此圖檔不能下載下傳用作桌面。",
"walls":"下載下傳今日美圖。僅限用作桌面桌面。"
}
}
- 圖檔的位址即為:必應位址+image[0].url(本例為:http://cn.bing.com/az/hprichbg/rb/RainierDawn_ZH-CN9182470816_1920x1080.jpg)
- 擷取圖檔,并儲存至本地。
- 這裡使用HttpClient類的GetByteArrayAsync方法。将圖檔存儲為位元組數組檔案。
byte[] photo=null;
//擷取圖檔位元組串
using(var httpClient=new HttpClient())
{
byte[] bt=await httpClient.GetByteArrayAsync(ImageUrl);
photo=bt;
}
- 将位元組數組存儲為檔案。也可參照文章C# Stream 和 byte[] 之間的轉換(檔案流的應用)
public void SaveImg(byte[] photobt)
{
//檢視圖檔是否已經下載下傳,path為路徑
if(File.Exists(path))
{
return;
}
//創造圖檔
using(FileStream fileStream=new FileStream(path,FileMode.Create))
{
BinaryWriter binaryWriter=new BinaryWriter(fileStream);
//寫入圖檔資訊
binaryWriter.Write(photobt);
}
}
- 擷取故事:https://cn.bing.com/cnhp/coverstory
- 傳回的json資料:
{
"date":"January 08",
"title":"一個國家的靈魂之地",
"attribute":"美國,瑞尼爾山國家公園",
"para1":"大多數人選擇在溫暖舒适的天氣裡來這兒,但冬天的淩冽和雪景會給這裡帶來另一種驚人的美。
在華盛頓州的瑞尼爾山國家公園(Mount Rainier National Park),冬天是享受休閑冰雪活動的好時機。
冬季的額外好處是,這時的國家公園沒有夏季那樣擁擠的人群。在大提頓山脈的雪地上,你很容易就能看
到成群的麋鹿和其他野生動物。或者漫步在布賴斯峽谷白雪皚皚的峰頂(高聳的紅色岩石尖頂),此刻的你
可能會覺得冬天才是參觀這個國家公園的最佳時間。今天的桌面便是我們拍到的公園中透過雲層的日出。",
"para2":"",
"provider":"© Stephen Matera/Tandem Stills + Motion",
"imageUrl":"http://hpimges.blob.core.chinacloudapi.cn/coverstory/watermark_rainierdawn_zh-cn9182470816_1920x1080.jpg",
"primaryImageUrl":"http://hpimges.blob.core.chinacloudapi.cn/coverstory/watermark_rainierdawn_zh-cn9182470816_1920x1080.jpg",
"Country":"美國",
"City":"瑞尼爾山國家公園",
"Longitude":"-121.759415",
"Latitude":"46.853148",
"Continent":"北美洲",
"CityInEnglish":"Mount Rainier National Park",
"CountryCode":"US"
}
- 反序列化處理即可,json資料處理見:如何用API擷取天氣資訊
- 詳細請看代碼。 ?
- 代碼下載下傳:https://github.com/xiaoxianrou8/BingImage