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


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

  • 相关阅读:
    JSP内置/隐式对象(9个)
    会话技术——Cookie&Session
    Head First Java——读书笔记(一)
    并发和并行
    HotSpot
    域对象的比较
    书籍——Java
    润乾报表基础知识
    Android引导页过多导致OOM内存泄漏
    AngularJS 之1-初识
  • 原文地址:https://www.cnblogs.com/guwei4037/p/15964299.html
Copyright © 2020-2023  润新知