C# winform post 请求指定 url
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
namespace Tt.KD100.Initiative.WinService
{
/// <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)
{
Grass.Log.ExceptionsStack.RegisterError(ex);
return string.Empty;
}
}
/// <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);
}
}
}
转载于:https://www.cnblogs.com/xxj-jing/archive/2012/10/24/2890044.html
C# winform post 请求指定 url相关推荐
- Java实现向指定URL用POST方法发送Json格式字符串参数请求的工具类
场景 SpringBoot项目中通过后台Controller向某服务接口发送POST请求. 实现 在项目pom.xml中添加依赖 <dependency><groupId>co ...
- 向指定URL发送GET或POST请求(调第三方接口)
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- 一个请求从 URL 字符串到 HTML 代码的“漫长曲折”之路
作者:Dino Esposito 出处:msdn ASP.NET HTTP 运行时 一个请求从 URL 字符串到 HTML 代码的"漫长曲折"之路 Dino Espos ...
- 从Internet上抓取指定URL的源码的方案
从Internet上抓取指定URL的源码的方案 作者: 引言: 在做无线项目的时候,与通讯公司的数据通讯有一部分是通过XML交互的,所以必须要动态抓取通讯公司提供的固定的Internet上的数据,便研 ...
- node.js 针对不同的请求路径(url) 做出不同的响应
边看这个边写的: http://wenku.baidu.com/link?url=C4yLe-TVH6060u_x4t34H3Ze8tjoL7HjJaKgH-TvHnEYl-T_gAMYwhmrCeM ...
- avascript怎么获取指定url网页中的内容
目录 一.总结 一句话总结:推荐jquery中ajax,简单方便. 1.js能跨域操作么? 二.用php获取 三.jquery中ajax获取 四.通过node.js获取 回到顶部 > 一.总结 ...
- 【js操作url参数】获取指定url参数值、取指定url参数并转为json对象
获取指定url参数值 /* 获取某url中的某参数值 调用:GetUrlQueryString("[url地址]","[参数名]"); */ function ...
- 利用python获取指定url在ATS中缓存对象的信息
业务需求 给定url,如何查询指定的ATS中是否有该url的缓存对象信息?如果缓存了的话,希望提供该缓存对象的大小,缓存时间,缓存文件名,缓存份数(document alternative)等等信息 ...
- ajax提交相对路径报错,ajax提交请求为啥url要用这个函数encodeURI
参考如下: 如果你是通过form提交的,那就不需要用这个了.但是如果是你使用url的方式 例如:ajax提交到后台的,就需要对url进行encodeURI编码, 否则,会导致后台出现各种乱码,不加en ...
- GET请求中URL的最大长度限制总结
由于jsonp跨域请求只能通过get请求,url长度根据浏览器及服务器的不同而有不同限制. 若要支持IE的话,最大的长度为2083字符,若是中文字符的话只有2083/9=231个字符. 若是Chrom ...
最新文章
- RecyclerView中adapter列表里有EditText输入框问题(使用不复用方法解决)
- node js npm 和 cnpm的使用
- C++ 标准库类型 vector
- pandas中合并数据集
- 零起点入门教程:1分钟极简操作,新手也能搭应用
- Spring Boot————Spring Data JPA简介
- 每天学一点flash(75) ToolTip 提示
- html第八章制作花样链接卡,利用flex布局横向滚动制作滑动选项卡以及内容滑块...
- 阻止默认事件event.preventDefault();
- Linux 安装jdk8
- Javascript-history.go()和history.back()的用法和区别
- 无线呼叫服务器对码设置,无线鼠标对码模式怎么设置
- 鲁班学院java高级架构师_鲁班学院三期java架构师
- ( vscode中文版 ) 怎么快速打开vscode settings.json文件
- 华退学博士王垠:离开是为了获得力量后再回来
- python文字处理dummy_python – 使用’dummy’变量创建数学函数,以便稍后进行评估...
- 方波的产生——555 产生方波
- Java实现生成并下载Excel文件
- WINVNC源码分析(四)——IO之rdr库
- 面向Python开发人员的综合置信区间全面理解