1. 程式人生 > 其它 >通過企業微信介面下載微盤檔案

通過企業微信介面下載微盤檔案

在除錯企業微信的下載企業微盤圖片檔案介面時,發現一直返回 System.Net.WebException:“遠端伺服器返回錯誤: (564)。” 這樣的錯誤。後來經過除錯,發現改動兩個地方即可完成企業微盤圖片的下載。 注意程式碼中的註釋部分,測試通過的完整程式碼如下:

//請求企業微盤圖片
//介面地址: https://developer.work.weixin.qq.com/document/path/93657#下載檔案

string url = @"xxx"; //xxx表示通過企業微信獲得的download_url
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
CookieContainer cc = new CookieContainer();
//cookie的key和cookie的value也是通過企業微信獲得的cookie_name和cookie_value
Cookie cookie = new Cookie("cookie的key", "cookie的value", "/", "sz-btfs-v2-down.wework.ftn.qq.com");
cc.Add(cookie);
request.CookieContainer = cc;
request.Method = "get";//改動1: 一定是get請求,這裡post請求不行,不寫預設是get請求
request.Host = "sz-btfs-v2-down.wework.ftn.qq.com"; //改動2. 要強制指定Host,這一步必須加
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

//儲存圖片
Stream stream = response.GetResponseStream();
Bitmap bitmap = new Bitmap(stream);
bitmap.Save("test.jpg");

對帶cookie的http請求進行測試,其實可以通過專門的工具進行快速測試。比如這裡我們選用Fiddler。

在Composer選項卡下可以填入url,選擇get/post請求進行http介面進行測試。

在FiddlerScript選項卡下開啟系統指令碼,找到OnBeforeRequest方法填入如上的指令碼,指定Host和Cookie。後面Cookie部分是cookie的key=value。

點選Execute按鈕在左側可以看到執行結果,返回Result為200表示執行成功。