zl程序教程

您现在的位置是:首页 >  其他

当前栏目

企业微信接口下载微盘文件

2023-09-11 14:22:25 时间

在调试企业微信的下载微盘文件接口成功之后,再进一步下载文件时,发现一直返回 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表示执行成功。