文档章节

采集/自动登录啊都可以用这两个方法实现 asp.net

豆花饭烧土豆
 豆花饭烧土豆
发布于 2015/05/29 06:05
字数 511
阅读 5
收藏 0
/// <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 = 6000; //超时时间
        request.Method = "get"; //get方式提交
        request.ContentType = "application/x-www-form-urlencoded;charset=" + Encoding;
        request.AllowAutoRedirect = true; //是否跟随重定向
        request.MaximumAutomaticRedirections = 10; //重定向最大数
        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 > 0)
            {
                parmsStr = parmsStr.Substring(1, parmsStr.Length - 1); //把第一个"&"删了
            }
        }
        byte[] postBytes = myEncoding.GetBytes(parmsStr);

        request.Timeout = 60000; //超时时间
        request.Method = "post"; //采用post方法提交
        request.ContentType = "application/x-www-form-urlencoded;charset=" + myEncoding;
        request.ContentLength = postBytes.Length;
        Stream requestStream = request.GetRequestStream();
        requestStream.Write(postBytes, 0, 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;

 

本文转载自:http://www.cnblogs.com/wawahaha/p/3777137.html

豆花饭烧土豆

豆花饭烧土豆

粉丝 15
博文 357
码字总数 93591
作品 0
深圳
私信 提问
Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员、后台管理员同时登录

Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Net Core 2.0 项目实战(3)NCMVC角色权限管理前...

郑州-在路上
2018/03/21
0
0
ASP.NET 2.0 中的新增安全功能

发布日期: 8/26/2004 | 更新日期: 8/26/2004 Stephen Walther Microsoft Corporation 适用于: Microsoft ASP.NET 2.0 Microsoft ASP.NET framework Microsoft SQL Server Microsoft Visua......

晨曦之光
2012/03/09
138
0
HttpModule与HttpHandler详解

ASP.NET对请求处理的过程: 当请求一个*.aspx文件的时候,这个请求会被inetinfo.exe进程截获,它判断文件的后缀(aspx)之后,将这个请求转交给 ASPNET_ISAPI.dll,ASPNET_ISAPI.dll会通过h...

HJCui
2016/05/20
44
0
Asp.Net Core 2.0 项目实战(8)Core下缓存操作、序列化操作、JSON操作等Helper集合类

Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Net Core 2.0 项目实战(3)NCMVC角色权限管理前...

郑州-在路上
2018/04/12
0
0
跨域SSO的实现之一:架构设计

翻译自CodeProject网站ASP.NET9月份最佳文章:Single Sign On (SSO) for cross-domain ASP.NET applications。 翻译不妥之处还望大家多多指导、相互交流。 文章分为两部分:架构设计和程序实...

达摩院法师
2010/10/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

医疗在线客服咨询系统有哪些特点?

随着中国互联网网站的的快速发展,至今医疗行业已经拥有了独立的的运营网站,其中最具特色的便属于医疗在线客服咨询系统,医疗在线客服咨询系统为每个访问网站的患者提供即时的网络在线客服服...

唯喏
今天
10
0
skywalking(容器部署)

skywalking(容器部署) 标签(空格分隔): APM [toc] 1. Elasticsearch SkywalkingElasticsearch 5.X(部分功能报错、拓扑图不显示) Skywalking需要Elasticsearch 6.X docker network create......

JUKE
今天
8
0
解决Unable to find a single main class from the following candidates [xxx,xxx]

一、问题描述 1.1 开发环境配置 pom.xml <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!--一定要对上springboot版本号,因......

TeddyIH
今天
7
0
玩转Spring Boot 注册Servlet、Filter、Listener

玩转Spring Boot 注册Servlet、Filter、Listener JAVA架构师Ya七月 2019-08-23 玩转Spring Boot 注册Servlet、Filter、Listener 在Servlet 3.0之前我们都是使用web.xml进行配置,需要增加Ser...

Java架构师ya七
今天
5
0
Dubbo服务限制大数据传输抛Data length too large: 13055248, max payload: 8388608解决方案

当dubbo服务提供者向消费层传输大数据容量数据时,会受到Dubbo的限制,报类似如下异常: 2019-08-23 11:04:31.711 [ DubboServerHandler-XX.XX.XX.XXX:20880-thread-87] - [ ERROR ] [com.al...

huangkejie
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部