C#中关于Send WebRequest 方法和数据处理

Helen ·
更新时间:2024-09-21
· 701 次阅读

  很久不更新博客了,这次大概说一下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;

 



send C# 方法 数据 数据处理

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章