不错博客:

[C#HttpHelper]官方产品发布与源码下载---苏飞版
http://www.sufeinet.com/thread-3-1-1.html

http://blog.csdn.net/xxj_jing/article/details/8107882

http://zhoufoxcn.blog.51cto.com/792419/561934/

http://www.dedecms.com/knowledge/program/asp-donet/2012/0803/4214.html

http://blog.csdn.net/zhoufoxcn/article/details/6404236

C# winform post 请求指定 url

/// <summary>
/// 请求信息帮助
/// </summary>
public class HttpHelper
{
/// <summary>
/// post 请求指定地址返回响应数据
/// </summary>
/// <param name="url">请求地址</param>
/// <param name="postData">请求数据</param>
/// <param name="timeout">请求超时时间(毫秒)</param>
/// <param name="requestCoding">请求编码</param>
/// <param name="responseCoding">响应编码</param>
/// <returns></returns>
public string PostRequest(string url, Dictionary<string, string> postData, int timeout, Encoding requestCoding, Encoding responseCoding)
{
string postStr = string.Empty;
if (postData != null)
{
postData.All(o =>
{
if (string.IsNullOrEmpty(postStr))
postStr = string.Format("{0}={1}", o.Key, o.Value);
else
postStr += string.Format("&{0}={1}", o.Key, o.Value); return true;
});
}
return PostRequest(url, postStr, timeout, requestCoding, responseCoding);
}
/// <summary>
/// post 请求指定地址返回响应数据
/// </summary>
/// <param name="url">请求地址</param>
/// <param name="postData">请求数据</param>
/// <param name="timeout">请求超时时间(毫秒)</param>
/// <param name="requestCoding">请求编码</param>
/// <param name="responseCoding">响应编码</param>
/// <returns></returns>
public string PostRequest(string url, string postData, int timeout, Encoding requestCoding, Encoding responseCoding)
{
string postUrl = VerifyUrl(url);
try
{
//写入POSTDATE里
byte[] byteArray = requestCoding.GetBytes(postData);
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(new Uri(postUrl));
webRequest.Method = "POST";
webRequest.Timeout = timeout;
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.ContentLength = byteArray.Length;
Stream newStream = webRequest.GetRequestStream();
newStream.Write(byteArray, 0, byteArray.Length);
newStream.Close();
//接收返回信息:
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
StreamReader php = new StreamReader(response.GetResponseStream(), responseCoding);
string result = php.ReadToEnd();
return result;
}
catch (Exception ex)
{
throw ex;
}
}
/// <summary>
/// 验证URL
/// </summary>
/// <param name="url">待验证 URL</param>
/// <returns></returns>
private string VerifyUrl(string url)
{
if (string.IsNullOrEmpty(url))
throw new Exception("URL 地址不可以为空!"); if (url.StartsWith("http://", StringComparison.CurrentCultureIgnoreCase))
return url; return string.Format("http://{1}", url);
}
}
 /// <summary>
/// Http请求
/// </summary>
public class HttpUtility
{
/// <summary>
///通用HttpWebRequest
/// </summary>
/// <param name="method">请求方式(POST/GET)</param>
/// <param name="url">请求地址</param>
/// <param name="param">请求参数</param>
/// <param name="onComplete">完成后执行的操作(可选参数,通过此方法可以获取到HTTP状态码)</param>
/// <returns>请求返回的结果</returns>
public static string Request(string method, string url, string param, Action<HttpStatusCode, string> onComplete = null)
{
if (string.IsNullOrEmpty(url))
throw new ArgumentNullException("URL"); switch (method.ToUpper())
{
case "POST":
return Post(url, param, onComplete);
case "GET":
return Get(url, param, onComplete);
default:
throw new EntryPointNotFoundException("method:" + method);
}
} /// <summary>
/// Post请求
/// </summary>
/// <param name="url">请求地址</param>
/// <param name="param">参数</param>
/// <param name="onComplete">完成后执行的操作(可选参数,通过此方法可以获取到HTTP状态码)</param>
/// <returns>请求返回的结果</returns>
public static string Post(string url, string param, Action<HttpStatusCode, string> onComplete = null)
{
UrlCheck(ref url); byte[] bufferBytes = Encoding.UTF8.GetBytes(param); var request = WebRequest.Create(url) as HttpWebRequest;//HttpWebRequest方法继承自WebRequest, Create方法在WebRequest中定义,因此此处要显示的转换
request.Method = "POST";
request.ContentLength = bufferBytes.Length;
request.ContentType = "application/x-www-form-urlencoded"; try
{
using (var requestStream = request.GetRequestStream())
{
requestStream.Write(bufferBytes, , bufferBytes.Length);
}
}
catch (WebException ex)
{ return ex.Message;
} return HttpRequest(request, onComplete);
} /// <summary>
/// GET请求
/// </summary>
/// <param name="url">请求地址</param>
/// <param name="param">参数</param>
/// <param name="onComplete">完成后执行的操作(可选参数,通过此方法可以获取到HTTP状态码)</param>
/// <returns>请求返回结果</returns>
public static string Get(string url, string param, Action<HttpStatusCode, string> onComplete = null)
{
UrlCheck(ref url); if (!string.IsNullOrEmpty(param))
if (!param.StartsWith("?"))
param += "?" + param;
else
param += param; var request = WebRequest.Create(url) as HttpWebRequest;
request.Method = "GET";
request.ContentType = "application/x-www-form-urlencoded"; return HttpRequest(request, onComplete);
} /// <summary>
/// 请求的主体部分(由此完成请求并返回请求结果)
/// </summary>
/// <param name="request">请求的对象</param>
/// <param name="onComplete">完成后执行的操作(可选参数,通过此方法可以获取到HTTP状态码)</param>
/// <returns>请求返回结果</returns>
private static string HttpRequest(HttpWebRequest request, Action<HttpStatusCode, string> onComplete = null)
{
HttpWebResponse response = null; try
{
response = request.GetResponse() as HttpWebResponse;
}
catch (WebException ex)
{
response = ex.Response as HttpWebResponse;
} if (response == null)
{
if (onComplete != null)
onComplete(HttpStatusCode.NotFound, "请求远程返回为空");
return null;
} string result = string.Empty;
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
result = reader.ReadToEnd();
} if (onComplete != null)
onComplete(response.StatusCode, result); return result; } /// <summary>
/// URL拼写完整性检查
/// </summary>
/// <param name="url">待检查的URL</param>
private static void UrlCheck(ref string url)
{
if (!url.StartsWith("http://") && !url.StartsWith("https://"))
url = "http://" + url;
}
}

  

C#分析URL参数获取参数和值得对应列表(二)的更多相关文章

  1. C#分析URL参数获取参数和值得对应列表

    原文: C#分析URL参数获取参数和值得对应列表 /// <summary> /// 分析url链接,返回参数集合 /// </summary> /// <param n ...

  2. C#分析URL参数获取参数和值得对应列表(一)

    C#操作Url参数 http://www.cnblogs.com/RobotH/archive/2008/11/17/1335322.html 用 C# 分析 URL 中的参数信息 http://ww ...

  3. lua post参数获取,参数截断

    post 请求头: a.application/x-www-form-urlencoded 普通表单提交 b.multipart/form-data 含有文件的表单,二进制上传 c.applicati ...

  4. php分割url,获取参数query

    #测试网址: http://localhost/blog/testurl.php?id=5 //获取域名或主机地址echo $_SERVER['HTTP_HOST']."<br> ...

  5. js 从URL上获取参数

    //获取匹配的        function getUrlParam(name) {             var reg = new RegExp("(^|&)" + ...

  6. 从url(地址栏)获取参数:Jquery中getUrlParam()方法的使用

    我想要获取如下id 如下代码(传参要加问好!!) function getUrlParam(id) { var regExp = new RegExp('([?]|&)' + id+ '=([ ...

  7. JS控制静态页面之间传递参数获取参数并应用

    在项目中遇到这也一个问题: 有a.html和b.html. 1.a页面已经打开,b页面尚未打开,我希望在a页面设置好一些列参数,比如背景色,宽度等参数,传递给b页面,好让b页面在打开就能应用. 2.a ...

  8. Python股票分析系列——自动获取标普500股票列表.p5

    该系列视频已经搬运至bilibili: 点击查看 欢迎来到Python for Finance教程系列的第5部分.在本教程和接下来的几节中,我们将着手研究如何为更多公司提供大量的定价信息,以及如何一次 ...

  9. ${param.xxx}获取url中的参数

    在项目中看到了一个很奇怪的EL表达式...${param.catid}...一直找不到param在哪里定义的...(主要是水平太屎...) 然后从网上查了一下才知道是啥... EL表达式${param ...

随机推荐

  1. jquery中的get和post、ajax有关返回值的问题描述

    一:前言 今天我就要离开公司回学校准备考试,在走之前,我自己做的一个模块测试除了一些小的bug.问题如下 我在往数据库中插入数据,首先要选择一级菜单,接着会更具一级菜单生成一级菜单的子目录,在选择日期 ...

  2. szoj461【四校联考0430】挑战

    传送门:(涉及版权忽略) [题解] 我们发现n的范围很小,提示我们可以折半,然后我们就会了O(T2^(n/2)*n)的做法,然而会T. 考虑如何优化.直接排序会多一个log(2^(n/2))也就是n, ...

  3. loadView不需要调用super view,原因:loadView方法的作用就是自定义view.[super loadView]会耗性能.

        https://www.evernote.com/shard/s227/sh/423fd81d-ab1c-4e6c-997d-39359472a4a5/f220ade8bd9be149ad70 ...

  4. 【洛谷 P4777】 【模板】扩展中国剩余定理(EXCRT)

    注意一下:: 题目是 \[x≡b_i\pmod {a_i}\] 我总是习惯性的把a和b交换位置,调了好久没调出来,\(qwq\). 本题解是按照 \[x≡a_i\pmod {b_i}\] 讲述的,请注 ...

  5. 一张图介绍 html中offset、client、scroll、offset 、padding、margin 各种属性介绍

  6. go开发

    我开发中一直用这一段 //for debuggingfunc printPretty(v interface{}, mark string) (err error) { fmt.Printf(&quo ...

  7. [转]Native进程的运行过程

    Native进程的运行过程 一般程序的启动步骤,可以用下图描述.程序由内核加载分析,使用linker链接需要的共享库,然后从c运行库的入口开始执行. 通常,native进程是由shell或者init启 ...

  8. PHP定时执行

    参考一 test.bat D:\myamp\php\php.exe -q D:\myamp\Apache\htdocs\dingshi.php dingshi.php <?php ignore_ ...

  9. [译]lambda表达式对 SAM (单个抽象方法类)type的处理方式

    在阅读Venkat Subramaniam的著作<Functional Programming in Java> 之后,方法模式和lambda完美结合让我印象深刻. 这种模式经常用作数据源 ...

  10. python基础(字符串常用、数字类型转换、基本运算符与流程控制)

    一.字符串常用操作: #! /usr/bin/env python # -*- coding: utf-8 -*- # __author__ = "Z'N'Y" # Date: 2 ...