C#调取百度网盘接口方法实例(个人笔记)

当代码调取错误的时候
1.检查接口调用实例是否漏多
2.对比浏览器的报文信息

  public class test : System.Web.Services.WebService
    {

        [WebMethod]
        public string HelloWorld(string id)
        {
            //Get();
            Thumbs OutData = GetPicture(id);

            return OutData.url3;
        }
        public static Thumbs GetPicture(string name)
        {


            //Get();
            string dir = "/大学相册/";
            string access_token = "xxxxxxxxxx";//获取token密令
            string key = name;
            string url = "https://pan.baidu.com/rest/2.0/xpan/file?";
            StringBuilder sb = new StringBuilder();
            sb.Append("dir=" + dir);
            sb.Append("&method=" + "search");
            sb.Append("&access_token=" + access_token);
            sb.Append("&key=" + key);
            sb.Append("&web=" +"1");
            string sInparam = sb.ToString();
            string code = "";
            GetSearch OutData = null;
            try
            {
                code = HttpPost(url + sInparam);
                OutData = new GetSearch();
            }
            catch
            {
                return null;
            }
            OutData = JsonConvert.DeserializeObject<GetSearch>(code);
            if (OutData.list.Count <= 0)
            {

                return null;
            }
            return OutData.list[0].thumbs;
        }
        public static string HttpPost(string url)
        {

            Encoding encoding = Encoding.UTF8;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "Get";
            request.ContentType = "application/x-www-form-urlencoded";
            //byte[] buffer = encoding.GetBytes(body);
            request.Host = "pan.baidu.com";
            //request.ContentLength = buffer.Length;
            //当时测试的时候由于没有Cookies在代码连接平台的时候会报平台连接错误,Get在浏览器上直接请求回报连接错误,我感觉原因:该浏览器没有登录百度网盘账号导致登录不上去,当我登录百度网盘账号后再次Get请求就能拿到返回值,然后我拿到Cookies报文信息,粘贴到代码中获取服务器成功,
            request.Headers.Add("Cookie", "xxxxxxxxx");
            //request.GetRequestStream().Write(buffer, 0, buffer.Length);
            try
            {
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();

                using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
                {
                    return reader.ReadToEnd();
                }
            }
            catch (Exception ex)
            {
                throw new Exception("false");
            }
        }
    }
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值