很久不更新博客了,这次大概说一下C#中的Send WebRequest,众所周知,.NET网络编程在测试中是非常常见的,具体来说,比如我们如果测试一个API,通过Send WebRequest的方式来进行API层面的功能测试,然后用Selenium完成前端的验证,这种模式应该说是比较方便而通用的,具体以其中最常见的HTTP request为例,当我们需要传输数据时,需要
1)地址:Address作为Webrequest参数实例化,然后设定相应属性,比如Method(Get还是Post等等)
2)数据:Data作为HttpRequest的数据流写入:
XmlResponse = null;
ResponseCode = HttpStatusCode.Unused;
ServerResponse = String.Empty;
参数处理部分
//Format the data
string output = data.Aggregate(String.Empty, (current, keyValuePair) => current + ("&" + keyValuePair.Key + "=" + HttpUtility.UrlEncode(keyValuePair.Value)));
var encoding = new UTF8Encoding();
//设置PostData变量将output进行处理,最终得到byte[] d作为最终数据写入到WebRequest中
var Postdata = Encoding.ASCII.GetBytes(output);
byte[] d = encoding.GetBytes(output.Substring(1, output.Length - 1));
var address = TargetUrl;
//GET部分的数据处理
if (method.ToUpperInvariant() == "GET")
address=address+output;
//POST部分的数据处理
WebRequest request = WebRequest.Create(address) as HttpWebRequest;
//Add post process
if (request == null)
throw new Exception("WebRequest object is null.");
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = d.Length;
ServerResponse = String.Empty;
//数据读取及处理部分
using (Stream dataStream = request.GetRequestStream())
{
dataStream.Write(d, 0, d.Length);
dataStream.Close();
using (var response = (HttpWebResponse)request.GetResponse())
{
ResponseCode = response.StatusCode;
using (Stream myStream = response.GetResponseStream())
{
if (myStream != null)
{
var readStream = new StreamReader(myStream, Encoding.UTF8);
ServerResponse = readStream.ReadToEnd();
}
}
response.Close();
}
}
if (ResponseCode == HttpStatusCode.OK)
{
if (loadXml)
LoadXml();
return true;
}
return false;
分享到:
相关推荐
c# 使用WebRequest实现多文件上传.docx
Unity 中通过UnityWebRequest 以POST形式传JSON格式(键值对格式)的参数请求数据。
实现MT4、MT5、CTrader等等其它程序交易软件数据或实时交易通过C/S桥接、Excel RTD等...方便其它编程语言如JAVA、C++、Excel VBA、C#、Python等语言数据调用,自动交易扩展。MT4桥接技术,ExcelRTD连接MT4实时数据交易
httpwebrequest调用webservice返回数据
Unity 中通过UnityWebRequest 以GET形式传authorization 的参数请求数据。 注意: 以Header头文件的形式发送请求,authorization要放入请求头部。 以头文件形式发起请求进行Token验证,token为Authorization中的...
CSDN助手V2.5[C#].rar利用 WebRequest 自动发贴或自动获取网页内容
C# sliverlight 中 WebClient与WebRequest以及HttpWebRequest 的关系
本文实例讲述了C#实现HTTP上传文件的方法。分享给大家供大家参考。具体实现方法如下: 发送文件代码如下: 代码如下: /// /// Http上传文件 /// public static string HttpUploadFile(string url, string ...
2022年 UnityWebRequest.isNetworkError”已过时,弃用,解决方法
C# 多线程基本于httpwebrequest实现的下载功能 每个线程均可以通过事件追踪情况
C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
每次请求,服务端是不同的Session, 提供了解决方法登录保持Session的解决方法。
分别介绍了C#语言基础、Windows窗体及常用控件、Windows高级控件、控件公共属性、方法及事件、数据库开发、文件、数据流与注册表、GDI+绘图技术和C#高级编程,共包含562个C#编程中常用的属性、方法、类和各种技术,...
一个用WebRequest获取网页内容的实例.
包括了HttpGet同步请求、异步请求方法,HttpPost同步请求、异步请求方法,以及Post调用WebServer方法。
Unity 最新UnityWebRequest下载网络资源,支持断点续传、多文件同时下载,同时显示下载进度,和 显示网速,今天贴出来和大家分享 删除Editor文件夹即可
UnityWebRequest下载超大资源
C#WEB用户令牌TOKEN验证,防止HTTP、GET、POST等提交包含服务端和客户端源码。Nginx集群,SSL证书的WebApi令牌验证