在网上寻找首字节响应的测试方法,没有找到,转一下webClient和webRequest的用法。我想,首字节响应的测试方法大概就是使用流,测读取一个字节长度所需的时间吧。浅薄了,有新的了解定及时更新。也请前辈不吝赐教。
引自:http://www.cnblogs.com/anjou/archive/2006/12/25/602943.html

       // 提交按钮的文本
       string submitButton = "登录";
       
// 页面的 VeiwState(可以通过IE打开页面,右键“查看源文件”取得)
       string viewState = "/wEPDwUKMTg0NTgwMzM2M2RksjXHwIOzdq/skwDy1k6qTexm2j0=";
       
// 页面的 EventValidation(可以通过IE打开页面,右键“查看源文件”取得)
       string eventValidation = "/wEWBAKxhbOEAQKPpuq2CALyveCRDwLejM6fDwP2723lUdzBJVBIAVzbpM2sXYqc";

       submitButton 
= System.Web.HttpUtility.UrlEncode(submitButton);
       viewState 
= System.Web.HttpUtility.UrlEncode(viewState);
       eventValidation 
= System.Web.HttpUtility.UrlEncode(eventValidation);

       
try
       
{
           
// 要提交表单的URI字符串。
           string uriString = "http://www.xxx.com/Login.aspx";
           
// 要提交的字符串数据。格式形如:user=uesr1&password=123
           string postString = "userName=1&password=1" + "&loginButton=" + submitButton + "&__VIEWSTATE=" + viewState + "&__EVENTVALIDATION=" + eventValidation;
           
// 初始化WebClient
           WebClient webClient = new WebClient();
           webClient.Headers.Add(
"Content-Type""application/x-www-form-urlencoded");
           
// 将字符串转换成字节数组
           byte[] postData = Encoding.ASCII.GetBytes(postString);
           
// 上传数据,返回页面的字节数组
           byte[] responseData = webClient.UploadData(uriString, "POST", postData);
           
// 将返回的将字节数组转换成字符串(HTML);
           
//     ASP.NET 返回的页面一般是Unicode,如果是简体中文应使用 
           
//     Encoding.GetEncoding("GB2312").GetString(responseData)
           string srcString = Encoding.UTF8.GetString(responseData);
       }

       
catch (WebException we)
       
{
           
string msg = we.Message;
       }

下面是另一端,包括了webClient和webRequest的用法
引用自:http://dotnet.aspx.cc/ShowDetail.aspx?id=0A6660CE-4138-41EF-B882-15DB65564709
using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using System.IO; using System.Net; using System.Text; using System.Text.RegularExpressions; namespace eMeng.Exam { /// <summary> /// GetPageHtml 的摘要说明。 /// </summary> public class GetPageHtml : System.Web.UI.Page { protected System.Web.UI.WebControls.Button WebClientButton; protected System.Web.UI.WebControls.Button WebRequestButton; protected System.Web.UI.WebControls.TextBox ContentHtml; protected System.Web.UI.WebControls.TextBox UrlText; protected System.Web.UI.WebControls.Button GetText; private string PageUrl = ""; private void Page_Load(object sender, System.EventArgs e) {} #region Web Form Designer generated code override protected void OnInit(EventArgs e) { InitializeComponent(); base.OnInit(e); } /// <summary> /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// </summary> private void InitializeComponent() { this.WebClientButton.Click += new System.EventHandler(this.WebClientButton_Click); this.WebRequestButton.Click += new System.EventHandler(this.WebRequestButton_Click); this.GetText.Click += new System.EventHandler(this.GetText_Click); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void WebClientButton_Click(object sender, System.EventArgs e) { PageUrl = UrlText.Text; WebClient wc = new WebClient(); wc.Credentials = CredentialCache.DefaultCredentials; ///方法一: Byte[] pageData = wc.DownloadData(PageUrl); ContentHtml.Text = Encoding.Default.GetString(pageData); /// 方法二: /// ***************代码开始********** /// Stream resStream = wc.OpenRead(PageUrl); /// StreamReader sr = new StreamReader(resStream,System.Text.Encoding.Default); /// ContentHtml.Text = sr.ReadToEnd(); /// resStream.Close(); /// **************代码结束******** /// wc.Dispose(); } private void WebRequestButton_Click(object sender, System.EventArgs e) { PageUrl = UrlText.Text; WebRequest request = WebRequest.Create(PageUrl); WebResponse response = request.GetResponse(); Stream resStream = response.GetResponseStream(); StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default); ContentHtml.Text = sr.ReadToEnd(); resStream.Close(); sr.Close(); } private void GetText_Click(object sender, System.EventArgs e) { PageUrl = UrlText.Text; WebRequest request = WebRequest.Create(PageUrl); WebResponse response = request.GetResponse(); Stream resStream = response.GetResponseStream(); StreamReader sr = new StreamReader(resStream, System.Text.Encoding.Default); ContentHtml.Text = sr.ReadToEnd(); resStream.Close(); sr.Close(); ContentHtml.Text = Regex.Replace(ContentHtml.Text,"<[^>]*>", ""); //替换空格 ContentHtml.Text = Regex.Replace(ContentHtml.Text,"\\s+", " "); } } }
Posted on 2008-04-15 23:15  曹岳  阅读(776)  评论(1)    收藏  举报