此文摘自csdn青山的博客地址:http://blog.csdn.net/a497785609/article/details/6437154

本人随笔只为方便自己查阅,也为广大网友提供方便,不喜勿喷!

    #region  向Url发送post请求
/// <summary>
/// 向Url发送post请求
/// </summary>
/// <param name="postData">发送数据</param>
/// <param name="uriStr">接受数据的Url</param>
/// <returns>返回网站响应请求的回复</returns>
public static string RequestPost(string postData, string uriStr)
{
HttpWebRequest requestScore = (HttpWebRequest)WebRequest.Create(uriStr); ASCIIEncoding encoding = new ASCIIEncoding();
byte[] data = encoding.GetBytes(postData);
requestScore.Method = "Post";
requestScore.ContentType = "application/x-www-form-urlencoded";
requestScore.ContentLength = data.Length;
requestScore.KeepAlive = true; Stream stream = requestScore.GetRequestStream();
stream.Write(data, 0, data.Length);
stream.Close(); HttpWebResponse responseSorce;
try
{
responseSorce = (HttpWebResponse)requestScore.GetResponse();
}
catch (WebException ex)
{
responseSorce = (HttpWebResponse)ex.Response;//得到请求网站的详细错误提示
}
StreamReader reader = new StreamReader(responseSorce.GetResponseStream(), Encoding.UTF8);
string content = reader.ReadToEnd(); requestScore.Abort();
responseSorce.Close();
responseSorce.Close();
reader.Dispose();
stream.Dispose();
return content;
}
#endregion

接收数据方法,

    /// <summary>
/// 得到程序post过来的数据
/// </summary>
/// <returns></returns>
private string GetPostContent()
{
string postStr = string.Empty;
Stream inputStream = Request.InputStream;
int contentLength = Request.ContentLength;
int offset = 0;
if (contentLength > 0)
{
byte[] buffer = new byte[contentLength];
for (int i = inputStream.Read(buffer, offset, contentLength - offset); i > 0; i = inputStream.Read(buffer, offset, contentLength - offset))
{
offset += i;
}
UTF8Encoding encoding = new UTF8Encoding();
postStr = encoding.GetString(buffer);
}
return postStr;
}

模拟Post请求的更多相关文章

  1. ASP模拟POST请求异步提交数据的方法

    这篇文章主要介绍了ASP模拟POST请求异步提交数据的方法,本文使用MSXML2.SERVERXMLHTTP.3.0实现POST请求,需要的朋友可以参考下 有时需要获取远程网站的某些信息,而服务器又限 ...

  2. java模拟post请求发送json

    java模拟post请求发送json,用两种方式实现,第一种是HttpURLConnection发送post请求,第二种是使用httpclient模拟post请求, 方法一: package main ...

  3. C# 通过模拟http请求来调用soap、wsdl

    C#调用webservice的方法很多,我说的这种通过http请求模拟来调用的方式是为了解决C#调用java的远程API出现各种不兼容问题. 由于远程API不在我们的控制下,我们只能修改本地的调用代码 ...

  4. 关于模拟http请求 cookie的赋值

    最近的工作一直是关于模拟http请求方面的知识的. 原本以为很简单,就是简单模拟一下http请求.先用fiddler模拟一下请求,验证接口可用,就直接上代码. 但是在模拟一个联通http的请求时候,我 ...

  5. HttpClient方式模拟http请求设置头

    关于HttpClient方式模拟http请求,请求头以及其他参数的设置. 本文就暂时不给栗子了,当作简版参考手册吧. 发送请求是设置请求头:header HttpClient httpClient = ...

  6. HttpClientUtil [使用apache httpclient模拟http请求]

    基于httpclient-4.5.2 模拟http请求 以get/post方式发送json请求,并获取服务器返回的json -------------------------------------- ...

  7. 使用 jQuery Mockjax 插件模拟 Ajax 请求

    在实际的开发过程中,前端后台协商好了统一的接口,就各自开始自己的任务了.这时候我有这么一个 Ajax 请求需要从后台获取数据: $.ajax({ url: '/products/' }).done(f ...

  8. PHP模拟POST请求,获取response内容

    /* * 模拟POST请求,获取response内容 */ protected function curl($url, $type, $header, $data) { $CURL_OPTS = ar ...

  9. Fidder模拟Post请求

    背景 最近想用fidder模拟post请求,怎么都传值失败,发现写Composer => Request Body中写的内容,总是无法映射到mvc的action参数上.百度一番,发现如下解决方案 ...

  10. sharepoint获取exchange邮箱报错:该帐户无权模拟所请求的用户

    现象: sharepoint获取exchange邮箱报错:该帐户无权模拟所请求的用户 处理办法: 1.Open the Exchange Management Shell 2.输入: New-Mana ...

随机推荐

  1. MySql学习(六) —— 数据库优化理论(二) —— 查询优化技术

    逻辑查询优化包括的技术 1)子查询优化  2)视图重写  3)等价谓词重写  4)条件简化  5)外连接消除  6)嵌套连接消除  7)连接消除  8)语义优化 9)非SPJ优化 一.子查询优化 1. ...

  2. Linux用sendmail发信失败,提示Connection refused by [127.0.0.1]

    现象: Linux用sendmail发信失败,提示Connection refused by [127.0.0.1] 29 14:10:44 iZ257p7xxilZ sendmail[3395]: ...

  3. 无废话SharePoint入门教程五[创建SharePoint页面布局]

    一.前言 文章成体系,如果有不明白的地方请查看前面的文章. 二.目录 1.创建页面布局 2.首次使用页面布局 3.修改页面布局 4.使用页面布局 5.最终效果 1.创建页面布局 (1)打开设计管理器, ...

  4. java map的默认排序问题

    import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; import java.util.Tre ...

  5. 开启LOH压缩?

    我们知道.NET CLR的GC堆中有一种特殊的堆,它专门存放超过85000byte的对象(详见这里),这就是大对象堆(LOH). 在.NET Framework 4.5.1之前,微软并没有提供对LOH ...

  6. 将 Tor socks 转换成 http 代理

    你可以通过不同的 Tor 工具来使用 Tor 服务,如 Tor 浏览器.Foxyproxy 和其它东西,像 wget 和 aria2 这样的下载管理器不能直接使用 Tor socks 开始匿名下载,因 ...

  7. OC语言中BOOL 和 bool 区别

    1.类型不同 BOOL为int型: bool为布尔型: 2.长度不同 bool只有一个字节: BOOL长度视实际环境来定,一般可认为是4个字节: 3.取值不同 bool取值false和true,是0和 ...

  8. IO多路复用,实现多线程监听

    服务端 import socket sk1 = socket.socket() sk1.bind(('127.0.0.1',8001)) sk1.listen() sk2 = socket.socke ...

  9. "$cond"

    db.items.aggregate([ { "$project": { "name": 1, "customfield": { " ...

  10. Android studio 项目的layout的文件打开,preview 视图无法显示,提示“no sdk found...”可能原因?

    1.安装android studio后启动,引导新的下载的sdk文件夹,不要默认在c:\users\你的用户名\appdata...下的sdk文件夹. 2.如果已经默认的,重新在settings/pr ...