企业微信接口下载微盘文件
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表示执行成功。
相关文章
- bat文件设置环境变量
- spring学习笔记(2)文件资源访问接口Resource
- java:Properties属性文件概念
- Linux文件和目录管理(cd,pwd,ls,mkdir,rmdir,touch,cp,rm,mv,)
- JAVA 遍历文件夹下的所有文件(递归调用和非递归调用)
- 使用SUID二进制文件进行Linux权限升级技巧
- 一键解析XML文件(利用Digester实现可配置)
- C# 判断远程文件是否存在
- Atitit httpclient 概述 rest接口 目录 1. Httpclient 利用http协议的client类库与技术方法1 2. 功能用途 why2 2.1. 上传下载文件2
- android jni用mmap接口实现文件读写功能
- 似乎只需要在cpp文件 #include<opencv2opencv.hpp> 就可以调用opencv里面所有的函数或者说函数接口了?
- 一个 JAR 文件可以用于
- git push到仓库自动压缩和清除冗余文件设置
- makefile实现创建目录和复制.ko文件