/// <summary>
/// 通过get方式发送xmlHttp请求,并获得响应数据
/// </summary>
/// <param name="Url">URL地址,参数直接写到后面,如:http://www.baidu.com/index.asp?id=7</param>
/// <param name="Encoding">请求和返回数据采用的编码方式,如 "gb2312" ,"utf-8"</param>
/// <returns></returns>
public static string SendXmlHttpWithGet(string Url, string Encoding, CookieContainer cookie)
{
HttpWebRequest request;// = (HttpWebRequest)WebRequest.Create(Url);
string ResponseHtml = "";
try
{
request = (HttpWebRequest)WebRequest.Create(Url);
request.CookieContainer = cookie;
request.KeepAlive = false; //是否建立持久连接
request.Timeout = ; //超时时间
request.Method = "get"; //get方式提交
request.ContentType = "application/x-www-form-urlencoded;charset=" + Encoding;
request.AllowAutoRedirect = true; //是否跟随重定向
request.MaximumAutomaticRedirections = ; //重定向最大数
request.AllowWriteStreamBuffering = false; //是否对发送数据进行缓冲处理
request.AuthenticationLevel = System.Net.Security.AuthenticationLevel.MutualAuthRequested; //进行身份验证 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); //获得响应
Stream responseStream = response.GetResponseStream(); //获得响应流
StreamReader readStream = new StreamReader(responseStream, System.Text.Encoding.GetEncoding(Encoding)); //读取字节的方式读取流 ResponseHtml = readStream.ReadToEnd(); //读完流
responseStream.Close(); //关闭响应流
readStream.Close();//关闭字节流
}
catch (Exception ex)
{
ResponseHtml = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><data><success value=\"0\" msg=\"登录失败!" + ex.Message.ToString() + "\" /></data>";
}
finally { }
return ResponseHtml;
} /// <summary>
/// 通过post方式发送xmlHttp请求,并获得响应数据
/// </summary>
/// <param name="url">URL地址</param>
/// <param name="parms">需要处理的参数键值对</param>
/// <param name="encoding">请求和返回数据采用的编码方式,如 "gb2312" ,"utf-8"</param>
/// <returns></returns>
public static string SendXmlHttpWithPost(string url, Hashtable parms, string encoding, CookieContainer cookie)
{
HttpWebRequest request ;//= (HttpWebRequest)WebRequest.Create(url);
string ResponseHtml = "";
try
{
request = (HttpWebRequest)WebRequest.Create(url);
request.CookieContainer = cookie;
////传参数
if (encoding == null) { encoding = "utf-8"; }
Encoding myEncoding = Encoding.GetEncoding(encoding); //指定编码 string parmsStr = "";
if (parms != null)
{
foreach (DictionaryEntry item in parms)
{
parmsStr += "&" + HttpUtility.UrlEncode(item.Key.ToString(), myEncoding);
parmsStr += "=" + HttpUtility.UrlEncode(item.Value.ToString(), myEncoding);
}
if (parmsStr.Length > )
{
parmsStr = parmsStr.Substring(, parmsStr.Length - ); //把第一个"&"删了
}
}
byte[] postBytes = myEncoding.GetBytes(parmsStr); request.Timeout = ; //超时时间
request.Method = "post"; //采用post方法提交
request.ContentType = "application/x-www-form-urlencoded;charset=" + myEncoding;
request.ContentLength = postBytes.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(postBytes, , postBytes.Length); //把参数写入请求流
requestStream.Close(); //获取响应
HttpWebResponse response = (HttpWebResponse)request.GetResponse();//获取响应
Stream responseStream = response.GetResponseStream();//获取响应流
StreamReader readStream = new StreamReader(responseStream, Encoding.GetEncoding("utf-8")); //采用StreamReader用指定编码读取响应流 ResponseHtml = readStream.ReadToEnd(); //读完流
responseStream.Close(); //关闭响应流
readStream.Close();//关闭字节流
}
catch (Exception ex)
{
ResponseHtml= "<?xml version=\"1.0\" encoding=\"utf-8\" ?><data><success value=\"0\" msg=\"登录失败!" + ex.Message.ToString() + "\" /></data>";
}
return ResponseHtml;

采集/自动登录啊都可以用这两个方法实现 asp.net的更多相关文章

  1. 自动化web前端测试,自动登录网站.目前发现最靠谱的方法是imacros

    imacros免费版 登录宏代码的示例: //首先登出URL GOTO=http://yoursite/logout.html//打开登录页面URL GOTO=http://yoursite/logi ...

  2. 基于localStorge开发登录模块的记住密码与自动登录

    前沿||我是乐于分享,善于交流的鸟窝 先做写一篇关于登录模块中记住密码与自动登录的模块.鸟窝微信:jkxx123321 关于这个模块功能模块的由来,这是鸟大大的处女秀,为什么这么说呢?一天在群里,一个 ...

  3. Linux expect实现自动登录

    expect expect可以让我们实现自动登录远程机器,并且可以实现自动远程执行命令.当然若是使用不带密码的密钥验证同样可以实现自动登录和自动远程执行命令.但当不能使用密钥验证的时候,我们就没有办法 ...

  4. Golddata如何采集需要登录/会话的数据?

    概要 本文将介绍使用GoldData半自动登录功能,来采集需要登录网站的数据.GoldData半自动登录功能,就是指通过脚本来执行登录,如果需要验证码或者其它内容需要人工输入时,可以通过收发邮件来执行 ...

  5. 利用activeX控件在网页里自动登录WIN2003远程桌面并实时控制

    首先要自己配置并打开受控端的WEB远程桌面服务,这个在“添加/删除windows组件”里有,我只在windows 2003 server里试过,没试过XP.下面我们在客户端安装微软提供的远程桌面客户端 ...

  6. 简单的行为控制管理方法,自动登录,session定时验证码过期

    代码很简单 实现的方式很多,用cookies 用static 变量 file文件缓存 等等 比如 //简单行为管理,如果请求此方法次数多于5次,就显示验证码 吧当前方法的name传进来,有效时间是5分 ...

  7. java 自动登录代码

    javaBean的代码    package bean;    import java.io.Serializable;    public class Admin implements Serial ...

  8. linux expect详解(ssh自动登录)

    shell脚本实现ssh自动登录远程服务器示例: #!/usr/bin/expect spawn ssh root@192.168.22.194 expect "*password:&quo ...

  9. 使用 PowerShell 自动登录Azure

    PowerShell 是管理 Azure 的最好方式之一,通过使用 PowerShell 脚本可以把很多的工作自动化.比如对于 Azure 上的虚拟机,可以设置定时关机操作,并在适当的时间把它开机,这 ...

随机推荐

  1. 12096 - The SetStack Computer UVA

    Background from Wikipedia: \Set theory is a branch of mathematics created principally by the German ...

  2. jquery 页面跳转 表单提交

    $("#button").click(function () {            $("#form").first().attr("action ...

  3. Mysql 复习

    1.my.ini :mysql 配置文件 [client]#password    = your_passwordport        = 3306socket        = /tmp/mysq ...

  4. Objective-C ,ios,iphone开发基础:JSON解析(使用苹果官方提供的JSON库:NSJSONSerialization)

    json和xml的普及个人觉得是为了简化阅读难度,以及减轻网络负荷,json和xml 数据格式在格式化以后都是一种树状结构,可以树藤摸瓜的得到你想要的任何果子. 而不格式化的时候json和xml 又是 ...

  5. oracle锁

    1.概念 数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁). 当数据对象被加上排它锁时,其他的事务不能对它读取和修改:加了共享锁的 ...

  6. oracle checkpoint 详解

    Oracle checkpoint详解 topcheckpoint扫盲 top什么是checkpoint 在数据库系统中,写日志和写数据文件是数据库中IO消耗最大的两种操作,在这两种操作中写数据文件属 ...

  7. ionic获取事件中的对象

    ng-click="submit1($event, 'argsTest’)" $scope.submit1=function(event, args){ var target = ...

  8. [改善Java代码]正确使用String,StringBuffer,StringBuilder

    CharSequence接口有三个实现类与字符串有关:String,StringBuffer,StringBuffer.虽然它们都与字符串有关,但是其处理机制是不同的. String类是不可改变的量, ...

  9. C#中泛型容器Stack<T>

    我以前都是学出c,c++,这个学期开始学c#有点不适应,在编程中遇到些问题,所以自己在网上查了些资料,翻了一下书,写一些总结. 关于c#中Stack<T>泛型容器: <1>st ...

  10. HDOJ2005第几天

    第几天? Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...