C# 之HTTP请求get,post带重试参数

public class WebHttp
    {
        /// <summary>
        /// get请求带重试
        /// </summary>
        /// <param name="Url"></param>
        /// <param name="postDataStr"></param>
        /// <param name="sum"></param>
        /// <returns></returns>
        public static string HttpGet(string Url, string postDataStr, int sum)
        {
            string temp=null;
            for (int i = 0; i < sum; i++)
            {
                if (string.IsNullOrEmpty(temp) || string.IsNullOrEmpty(temp.Trim()))
                {
                    temp = HttpGet(Url, postDataStr);
                }
                else {
                    break;
                }
            }
            return temp;
        }
        /// <summary>
        /// post请求带重试
        /// </summary>
        /// <param name="Url"></param>
        /// <param name="postDataStr"></param>
        /// <param name="sum"></param>
        /// <returns></returns>
        public static string HttpPost(string Url, string postDataStr, int sum)
        {
            string temp = null;
            for (int i = 0; i < sum; i++)
            {
                if (string.IsNullOrEmpty(temp) || string.IsNullOrEmpty(temp.Trim()))
                {
                    temp = HttpPost(Url, postDataStr);
                }
                else
                {
                    break;
                }
            }
            return temp;
        }
        /// <summary>
        /// GET请求与获取结果
        /// </summary>
        public static string HttpGet(string Url, string postDataStr)
        {
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url + (postDataStr == "" ? "" : "?") + postDataStr);
                request.Method = "GET";
                request.ContentType = "text/html;charset=UTF-8";
                request.Timeout = 10000;
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream myResponseStream = response.GetResponseStream();
                StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
                string retString = myStreamReader.ReadToEnd();
                myStreamReader.Close();
                myResponseStream.Close();
                return retString;
            }
            catch (Exception ex)
            {
                return null;
            }
        }
        /// <summary>
        /// POST请求与获取结果
        /// </summary>
        public static string HttpPost(string Url, string postDataStr)
        {
            try
            {
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
                request.Method = "POST";
                request.Timeout = 6000000;
                request.ContentType = "application/x-www-form-urlencoded";
                request.ContentLength = postDataStr.Length;
                StreamWriter writer = new StreamWriter(request.GetRequestStream(), Encoding.ASCII);
                writer.Write(postDataStr);
                writer.Flush();
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                string encoding = response.ContentEncoding;
                if (encoding == null || encoding.Length < 1)
                {
                    encoding = "UTF-8"; //默认编码
                }
                StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding));
                string retString = reader.ReadToEnd();
                return retString;
            }
            catch (Exception ex)
            {
                return null;
            }
        }
    }
时间: 2024-11-13 14:47:25

C# 之HTTP请求get,post带重试参数的相关文章

[JavaEE]Get请求URI中带的中文参数在服务端乱码问题的解决方法

在Get请求中,如果请求参数中带有中文,如 http://localhost:8080/DinnerParty/shop/search?query=多伦多, 在服务端拿到的是乱码. 这是因为客户端提交过去的是UTF-8编码的数据,而服务端解析URi时可能使用的是 iso8859-1编码. 修改tomcat配置文件server.xml <Connector port="8080" protocol="HTTP/1.1"               connect

一个带重试次数的curl 函数

<?php/** * [curl 带重试次数] * @param [type] $url [访问的url] * @param [type] $post [$POST参数] * @param integer $retries [curl重试次数] * @return [type] [description] */function curl($url, $post = null, $retries = 3,$sleep=1 ){ $curl = curl_init($url); if(is_reso

重定向带中文参数跳页面显示中文示例代码

最近发现一个问题,访问servlet,在其中使用重定向带中文参数跳转页面,发现地址栏取不到参数为中文的情况,纠结一小会,下面讲讲乱码原因:对于URL地址栏里面的内容一般都是ISO-8859-1编码的,所以呢,我们如果使用重定向,那么就是重新修改地址栏里面的内容(URL),那么这是如果我们要在URl中加入中文参数,必须将中文以ISO-8859-1的编码,然后才可以显示在地址栏上,不然就会实现中文找不到的情况或者地址栏中文乱码,不罗嗦看代码,大家就会明白. 下面贴我的代码了,不明白可以交流: 在We

异步无刷新上传文件并且上传文件可以带上参数

关于异步上传文件并且带上参数,网上有很多关于这样的插件,而我最喜欢用的插件是ajaxfileupload.js,该插件的代码如下: /*   131108-xxj-ajaxFileUpload.js 无刷新上传图片 jquery 插件,支持 ie6-ie10    依赖:jquery-1.6.1.min.js   主方法:ajaxFileUpload 接受 json 对象参数   参数说明:   fileElementId:必选,上传文件域ID   url:必选,发送请求的URL字符串   fi

Python使用urllib时url带中文参数的问题

urllib.request.urlopen(url).read().decode('utf-8') url中带中文参数会出错:UnicodeEncodeError: 'ascii' codec can't encode characters in position 84-86: ordinal not in range(128) 需要对中文进行转码 url = GEOCODE_BASE_URL + urllib.parse.quote('北京市') 文档中对urlib.parse.quote的

请求(Request)的参数(Parameter)里包含特殊字符(#等)的正确处理方式

遇到一个问题 在一个地址链接(URL)里使用  url?param1=val1&param2=val2  的方式传递参数,结果在获取参数值时发现不是当初设定的值. 具体案例 以特殊字符井号(#)为例. 部分参数值丢了 JS里设置参数 window.location="some_web_project/xxx.jsp?param_key=abc#xyz"; Java中取参数值 Sting paramVal = request.getParameter("param_ke

tcl脚本学习十一:proc应用 (带默认参数)

lesson 11 : proc应用 (带默认参数) 1.//使用过程的时候,不一定输入所有的参数值.过程的输入参数可以有默认值.默认值由{默认参数名 默认值}指定.如果调用过程时没有指定这些参数的值则会使用其默认值,否则使用输入值来替代默认值.在使用默认参数的时候要注意,如果默认参数之后还有非默认参数,则在调用此过程的时候,默认参数的值也要求输入,否则会出错.这是因为 Tcl 调用过程的时候是根据位置来匹配参数和输入值的2.如果参数列表中最后一个参数是 args 的话,则过程可以接收可变数目的

vb如何编写带执行参数的exe程序

关于vb如何编写带执行参数的exe程序 ,可以通过vb自带的 "command()"  命令来完成. 下面是CSDN说明: Command 函数 返回命令行的参数部分,该命令行用于装入 Microsoft Visual Basic 或 Visual Basic 开发的可执行程序. 语法 Command 说明 当从命令行装入 Visual Basic 时,/cmd 之后的命令行的任何部分作为命令行的参数传递给程序.下面的示例中,cmdlineargs 代表 Command 函数返回的参数

Java中List转数组,必须带个参数

public static void main(String[] args) { List<String> lst = new ArrayList(); lst.add("赵云 "); lst.add("张飞"); //X: String[] strA = (String[]) lst.toArray(); // List转数组:toArray(必须带个参数) String[] strA = (String[]) lst.toArray(new Stri