通過企業微信介面下載微盤檔案
阿新 • • 發佈:2022-03-04
在除錯企業微信的下載企業微盤圖片檔案介面時,發現一直返回 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表示執行成功。