zoukankan      html  css  js  c++  java
  • 关于模拟http请求 cookie的赋值

    最近的工作一直是关于模拟http请求方面的知识的。

    原本以为很简单,就是简单模拟一下http请求。先用fiddler模拟一下请求,验证接口可用,就直接上代码。

    但是在模拟一个联通http的请求时候,我就遇到难点了,首先要进入别人的网站,必须要注册账号登录才行。

    所以以前简单的登录根本就没有涉及到什么cookie这个参数,有也是很简单的单个键值对赋值。

    我截一段联通的请求:

    可以看到这个请求的cookie那是相当的长;我第一放映是艹这么长那些是有用的那些是没有用的,难道要我一个一个去尝试,还不如一回都赋值上去,

    如是我就把所有的cookie都以

    req.CookieContainer.Add(new Cookie("sid", "werwerqw", "/", "iservice.10010"));
    
    这种形式加上最后既然报错了。
    我怀疑是不是这个接口加密了,或者是根本就接不通。如是我把所有的请求都放到fiddler里面去尝试,结果还是不行,
    难道是接口真的不可用,不应该啊!
    我有尝试用postman去请求,有结果了(看来模拟http请求postman还是比fiddler好使啊)
    那么我的代码为啥不行了?
    想了半天,我知道问题肯定出在cookie上了;
    最好用反射给cookie赋值就好使了,简单实用,代码如下:
    1   public static void SetHeaderValue(WebHeaderCollection header, string name, string value)
    2         {
    3             var property = typeof(WebHeaderCollection).GetProperty("InnerCollection", BindingFlags.Instance | BindingFlags.NonPublic);
    4             if (property != null)
    5             {
    6                 var collection = property.GetValue(header, null) as NameValueCollection;
    7                 collection[name] = value;
    8             }
    9         }
    SetHeaderValue(req.Headers, "cookie",“cookie的值”);
    ok了!
  • 相关阅读:
    使用Kafka Connect导入/导出数据
    FastDFS :java.lang.Exception: getStoreStorage fail, errno code: 28
    Zookeeper+Kafka集群测试
    zookeeper,kafka错误
    kafka systemctl开机启动
    zookeeper systemctl开机启动
    kafka 集群安装
    kafka升级官方指导及注意事项
    centos7.7 添加nginx服务
    教你如何迅速秒杀掉:99%的海量数据处理面试题
  • 原文地址:https://www.cnblogs.com/HKKD/p/6093011.html
Copyright © 2011-2022 走看看