#region 根据URL获取结果集
        /// <summary>
        /// 根据URL获取结果集 默认为GET,如果数据量大了可以传入POST
        /// </summary>
        /// <param name="url">URL地址</param>
        /// <param name="type">默认为GET,删除时用DELETE</param>
        /// <returns>String类型的,Json格式的结果集</returns>
        public static string GetUrlResult(string url, string type = "GET")
        {
            string result = string.Empty;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = type;
            request.ContentType = "application/x-www-form-urlencoded";
            Stream resStream = null;
            StreamReader sr = null;
            try
            {
                WebResponse response = request.GetResponse();
                resStream = response.GetResponseStream();
                sr = new StreamReader(resStream, System.Text.Encoding.UTF8);
                result = sr.ReadToEnd();
                resStream.Close();
                sr.Close();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return result;
        }
        #endregion

#region 根据URL获取结果集
        /// <summary>
        /// 根据URL获取结果集 默认为GET,如果数据量大了可以传入POST
        /// </summary>
        /// <param name="url">URL地址</param>
        /// <param name="proxy">代理IP</param>
        /// <param name="type">默认为GET,删除时用DELETE</param>
        /// <returns>String类型的,Json格式的结果集</returns>
        public static string GetUrlResult(string url, WebProxy proxy, string type = "GET")
        {
            string result = string.Empty;
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Proxy = proxy;
            request.Method = type;
            request.Timeout = 1000 * 10;
            request.ContentType = "application/x-www-form-urlencoded";
            Stream resStream = null;
            StreamReader sr = null;
            try
            {
                WebResponse response = request.GetResponse();
                resStream = response.GetResponseStream();
                sr = new StreamReader(resStream, System.Text.Encoding.UTF8);
                result = sr.ReadToEnd();
                resStream.Close();
                sr.Close();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return result;
        }
        #endregion

#region 通过POST方式去TRS创建豆腐块
        /// <summary>
        /// 通过POST方式去TRS创建豆腐块
        /// </summary>
        /// <param name="url">url</param>
        /// <param name="param">参数</param>
        /// <returns></returns>
        public static string PostUrlResult(string url, string param)
        {
            string result = string.Empty;
            byte[] byteArray = Encoding.UTF8.GetBytes(param);
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "POST";
            request.ContentType = "application/x-www-form-urlencoded";

Stream newStream = null;
            StreamReader sr = null;
            try
            {
                newStream = request.GetRequestStream();
                newStream.Write(byteArray, 0, byteArray.Length);
                newStream.Close();
                //获取响应
                WebResponse response = request.GetResponse();
                sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
                result = sr.ReadToEnd();
                sr.Close();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return result;
        }
        #endregion

#region 根据IP和端口号检查代理IP是否有效
        /// <summary>
        /// 根据IP和端口号检查代理IP是否有效
        /// </summary>
        /// <param name="ip">代理IP</param>
        /// <param name="port">端口号</param>
        /// <returns></returns>
        public static bool AgentIsAvailable(string ip, int port)
        {
            bool result = false;
            HttpWebRequest webRequest;
            HttpWebResponse webResponse;
            StreamReader sr = null;
            try
            {
                WebProxy proxy = new WebProxy(ip, port);
                webRequest = WebRequest.Create(ConfigurationManager.AppSettings["SSWBValidIPUrl"]) as HttpWebRequest;
                webRequest.Proxy = proxy;
                webRequest.Timeout = 1000 * 5;
                webResponse = webRequest.GetResponse() as HttpWebResponse;
                sr = new StreamReader(webResponse.GetResponseStream(), Encoding.GetEncoding("UTF-8"));
                string str = sr.ReadToEnd();
                if (str.Contains(ConfigurationManager.AppSettings["SSWBContainsString"]))
                    result = true;
                sr.Close();
                sr.Dispose();
            }
            catch (Exception ex)
            {
                Logging.Error(string.Format("检验代理IP是否有效时异常,异常信息:{0}", ex.Message));
            }
            return result;
        }
        #endregion

C# 中请求数据方式的更多相关文章

  1. vue的请求数据方式

    一,vue-resource请求数据 介绍:vue-resource请求数据方式是官方提供的一个插件 步骤: 1,npm安装     npm  install vue-resource  --save ...

  2. Flask中请求数据的优雅传递

    当一个请求到来时,浏览器会携带很多信息发送发送服务端.在Django中,每一个处理函数都要传入一个request的参数,该参数携带所有请求的信息,也就是服务端程序封装的environ(不明白该参数可以 ...

  3. js中请求数据的$post和$ajax区别(同步和异步问题)

    $.post和$.Ajax都为页面上向后台发送请求,请求数据 1.post 因为post默认为异步请求,可是有时候我们会发现,本来要求请求马上出现,可是异步会导致后面突然再执行,这样就出很多问题 2. ...

  4. axios中请求传值方式

    日常开发中与后端联调,可能需要的数据不同,所传值也有所不同 1.如果是data方式,设置请求头为:并且直接返回data就可以  raw axios.defaults.headers['Content- ...

  5. Nuxt.js 如何在 asyncData中 请求数据 ,并将拿到的数据传给子组件

    说明:同接口请求一样,也可以进行数据的处理:return  中 左侧的变量  可以直接拿到在页面上使用,也可以传递给子组件 下面再给出一段代码,方便觉得有用的.却又不想手敲的朋友们: async as ...

  6. struts中请求数据自动封装

    实现原理 参数拦截器 第一:jsp表单数据填充到action中的属性 必须实现set方法,get方法可以不需要实现,jsp页面name名字保持一致 第二:jsp表单填充到action的对象的属性 js ...

  7. 爬取'Content-Type': 'text/plain;charset=UTF-8' ,发送请求数据方式

    解决方式 直接以字符串的方式发送data就可以得到响应数据 import requests data = 'k1:v1,k2:v2' requests.post(url, data=data)

  8. Vue vue-resource三种请求数据方式pet,post,jsonp

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. vue.js中请求数据v-for循环使用数据

    1.效果图 2.cart.json { "message":"", "status":"1", "result ...

随机推荐

  1. C# 类构造函数赋值里属性与字段赋值注意项

    public class Test { public Test(int age) { this.Age=age;//如果这里使用的是this.age=age;那么属性里的判断将不会执行 } priva ...

  2. Java longTime 和C#日期转换(结构+运算符重载)

    前几天,因为工作原因,连到了公司的一个java系统.查看数据的时候,突然整个人都不好了,数据库中日期字段时间为毛都是整型?之前从来没有接触过java,所心就趁机了解了一下.原来,在数据库中,保存的是j ...

  3. div 显示与隐藏

    visibility隐藏的对象还保留对象显示时所占的物理空间,display则不保留.可以保存下面的代码看看效果: 具体步骤: 代码示例: <div style="border:1px ...

  4. 嵌入式 linux 移植修改后的libjpeg 实现内存中解码

    1.修改libjpeg源码,使之实现内存解码. 修改libjpeg中读取或者输出jpeg文件的函数接口文件jdatadst.c和jdatasrc.c见下面这篇帖子. http://blog.163.c ...

  5. (转)一网打尽当下NoSQL类型、适用场景及使用公司

    摘要:对比传统关系型数据库,NoSQL有着更为复杂的分类——键值.面向文档.列存储以及图数据库.这里就带你一览NoSQL各种类型的适用场景及一些知名公司的方案选择. 在过去几年,关系型数据库一直是数据 ...

  6. Linux常用命令--文件的压缩和解压缩

    在Linux系统中,我们通常使用的文件压缩命令有:bunzip2 , bzip2 , cpio , gunzip , gzip ,split(切割文件) , zgrep(在压缩文件中寻找匹配的正则表达 ...

  7. linux系统man查询命令等级与意义

    代号 意义 1 可执行程序和一般shell命令 2 系统调用函数 3 库函数 4 设备配置文件,通常在/dev下 5 配置文件,/ec下 6 游戏 7 协议及杂项 8 管理员命令 9 与内核相关

  8. linux下dup/dup2函数的用法

    系统调用dup和dup2能够复制文件描述符.dup返回新的文件文件描述符(没有用的文件描述符最小的编号).dup2可以让用户指定返回的文件描述符的值,如果需要,则首先接近newfd的值,他通常用来重新 ...

  9. Linux5.8下安装PhpMyadmin无法关联php-mcrypt问题

    一.yum安装php-mcrypt   ##发现没办法安装 原来CentOS 官方默认不在对mcrypt模块 进行支持,所以必须另想办法折腾了2个小时总算搞定,这里主要使用了Fedora的扩展库, E ...

  10. Ubuntu16.04.1 安装Redis-Cluster

    Redis在3.0版正式引入了集群这个特性.Redis集群是一个分布式(distributed).容错(fault-tolerant)的 Redis内存K/V服务, 集群可以使用的功能是普通单机 Re ...