关于模拟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赋值就好使了,简单实用,代码如下:
public static void SetHeaderValue(WebHeaderCollection header, string name, string value)
{
var property = typeof(WebHeaderCollection).GetProperty("InnerCollection", BindingFlags.Instance | BindingFlags.NonPublic);
if (property != null)
{
var collection = property.GetValue(header, null) as NameValueCollection;
collection[name] = value;
}
}
SetHeaderValue(req.Headers, "cookie",“cookie的值”);
ok了!
关于模拟http请求 cookie的赋值的更多相关文章
- C#模拟httpwebrequest请求_向服务器模拟cookie发送
		
使用C#代码模拟web请求,是一种常用的方法,以前没专门整理过,这里暂时贴上自己整理的完整代码,以后再做梳理: public class MyRequest { #region 辅助方法 public ...
 - C#模拟请求,模拟登录,Cookie设置、文件上传等问题汇总
		
由于业务需求,最近需要模拟完成登陆某个网站,并上传所需要的文件.在开发途中,遇到了很多问题,现在,就我遇到的一些问题及解决办法说明如下,希望对遇到同样问题的人有所帮助.因为技术有限,可能有些内容并不完 ...
 - js_html_input中autocomplete="off"在chrom中失效的解决办法   使用JS模拟锚点跳转   js如何获取url参数    C#模拟httpwebrequest请求_向服务器模拟cookie发送   实习期学到的技术(一)  LinqPad的变量比较功能   ASP.NET EF 使用LinqPad 快速学习Linq
		
js_html_input中autocomplete="off"在chrom中失效的解决办法 分享网上的2种办法: 1-可以在不需要默认填写的input框中设置 autocompl ...
 - C# 通过模拟http请求来调用soap、wsdl
		
C#调用webservice的方法很多,我说的这种通过http请求模拟来调用的方式是为了解决C#调用java的远程API出现各种不兼容问题. 由于远程API不在我们的控制下,我们只能修改本地的调用代码 ...
 - HttpClient方式模拟http请求设置头
		
关于HttpClient方式模拟http请求,请求头以及其他参数的设置. 本文就暂时不给栗子了,当作简版参考手册吧. 发送请求是设置请求头:header HttpClient httpClient = ...
 - python模拟http请求2
		
发现了一个非常好用的第三方module:requests,模拟接口非常简单. 详细了解请移步:http://docs.python-requests.org/en/latest/ 非常不错 #!cod ...
 - python模拟http请求
		
下文主要讲述如何利用python自带的库模拟http请求,为以后利用python做API测试做准备. 只讲述模拟http的过程,具体到自己用的时候,要以自己的应用为准做出适当的调整. #!coding ...
 - python模拟Get请求保存网易歌曲的url
		
python模拟Get请求保存网易歌曲的url 作者:vpoet mail:vpoet_sir@163.com 日期:大约在夏季 #coding:utf-8 import requests impor ...
 - 使用 HttpWebRequest 发送模拟 POST 请求
		
使用HttpWebRequest发送模拟POST请求 网页中,如果form的method="POST",这时点击submit按钮可以给服务器发送了一个POST请求,如果metho ...
 
随机推荐
- oracle数据库之数组的操作样例
			
1.创建bean对象 --创建bean对象 CREATE OR REPLACE TYPE "FM_FLOWCPHDTSWJJIMPBEAN" as object ( wf_no ) ...
 - golang  print struct  with key
			
https://play.golang.org/p/YMfpuluzef 判断结构体是否为空 打印带attribute(key) 的结构体 package main import ( "fm ...
 - margin重叠现象与margin auto自适应居中
			
上下相邻的(算一种兄弟关系)普通元素,上下边距并非简单的相加,而是取其中最大的边距值:而浮动的盒子边距是相加的:父子div也会发生重叠,并不是bug: <style>#test1{ wid ...
 - Python之路【第十八章】:Django基础
			
Django基本配置 Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Se ...
 - Python开发【杂货铺】:模块logging
			
logging模块 很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式 ...
 - 解决Chrome flash过期
			
解决Chrome flash过期的办法安装Adobe Flash Player PPAPI
 - Python常见的运行错误
			
(1)忘记在 if , elif , else , for , while , class ,def 声明末尾添加 :(导致 "SyntaxError :invalid syntax&quo ...
 - 日志时间格式有s,ms,us,如何排序最大10行
			
这个比较繁琐,谁有更好方法?告诉我 [root@module tmp]# cat oldboy.txt 12s120001ms12000000us13s[root@module tmp] ...
 - LeetCode: Invert Binary Tree
			
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * Tre ...
 - 「JavaScript」四种跨域方式详解
			
超详细并且带 Demo 的 JavaScript 跨域指南来了! 本文基于你了解 JavaScript 的同源策略,并且了解使用跨域跨域的理由. 1. JSONP 首先要介绍的跨域方法必然是 JSON ...