1:使用webBrowser控件 webBrowser1.Navigate("www.csdn.net") 2: 使用WebRequest dim request as WebRequest = WebRequest.Create("url") dim response as WebResponse = request.GetResponse() dim resStream as Stream = response.GetResponseStream() dim sr as StreamReader = new StreamReader(resStream, System.Text.Encoding.Default) textBox2.Text = sr.ReadToEnd() resStream.Close() sr.Close()
System.Net.WebResponse wrp = wrq.GetResponse();
// ...........
{
private string sPostDate;
/// <summary>
/// 枑蝠杅擂
/// </summary>
public string PostDate_String
{
get
{
return sPostDate;
}
set
{
sPostDate=value;
}
}
private string sPostUrl;
/// <summary>
/// 枑蝠華硊
/// </summary>
public string postUrl
{
get
{
return sPostUrl;
}
set
{
sPostUrl=value;
}
}
private CookieContainer sSessionId;
/// <summary>
/// Cookies梓祩
/// </summary>
public CookieContainer SessionId
{
get
{
return sSessionId;
}
set
{
sSessionId=value;
}
}
private string sReturnString;
/// <summary>
/// 殿隙趼睫揹
/// </summary>
/// <returns> </returns>
public string ReturnString
{
get
{
return sReturnString;
}
set
{
sReturnString=value;
}
} public void Send()
{
//ASCIIEncoding encoding=new ASCIIEncoding();
//try
//{
UTF8Encoding encoding=new UTF8Encoding();
byte[] byte1=encoding.GetBytes(sPostDate);
HttpWebRequest request = (HttpWebRequest) WebRequest.Create(sPostUrl);
request.CookieContainer=sSessionId;
//request.AllowAutoRedirect=true;
request.Method="POST";
request.Accept="*.*";
/*if (sProxy!="" ¦ ¦sProxy.Length!=0)
{
string[] aProxy;
aProxy=sProxy.Split(':');
WebProxy p=new WebProxy(aProxy[0],Convert.ToInt32(aProxy[1]));
request.Proxy=p;
}*/
/*WebProxy p=new WebProxy("12.108.52.196",3128);
request.Proxy=p;*/
request.Referer="來路地址";
request.ContentLength=sPostDate.Length;
request.ContentType="application/x-www-form-urlencoded";
request.ServicePoint.Expect100Continue = false;
Stream newStream=request.GetRequestStream();
newStream.Write(byte1,0,byte1.Length);
//request.get
request.Timeout=30000;
HttpWebResponse response = (HttpWebResponse) request.GetResponse();
byte[] buf = new byte[46000];
string xx=response.StatusCode + "//" + response.StatusDescription;
Stream resStream = response.GetResponseStream();
//resStream.Write(byte1,0,byte1.Length);
int count = resStream.Read(buf, 0, buf.Length);
sReturnString=Encoding.Default.GetString(buf,0,count);
resStream.Close();
newStream.Close();
//}
//catch(Exception ex)
//{
// MessageBox.Show(null,ex.Message,"渣昫");
//}
}
}
System.Net.WebResponse wrp = wrq.GetResponse();
// ...........
webBrowser1.Navigate("www.csdn.net")
2: 使用WebRequest
dim request as WebRequest = WebRequest.Create("url")
dim response as WebResponse = request.GetResponse()
dim resStream as Stream = response.GetResponseStream()
dim sr as StreamReader = new StreamReader(resStream, System.Text.Encoding.Default)
textBox2.Text = sr.ReadToEnd()
resStream.Close()
sr.Close()
System.Net.HttpWebRequest hwrq = System.Net.HttpWebRequest.Create("http://localhost") as System.Net.HttpWebRequest;
hwrq.Method = "POST";
hwrq.Headers.Add("HEADER_COLLECTION");
System.Net.WebResponse wrp = hwrq.GetResponse();
// ...
static string GetPage(string url)
{
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
try
{
using (HttpWebResponse res = (HttpWebResponse)req.GetResponse())
{
using (StreamReader sr = new StreamReader(res.GetResponseStream()))
{
return sr.ReadToEnd();
}
}
}
catch (System.Exception e)
{
return e.Message;
}
finally
{
req.Abort();
}
}
比如"中国武汉",标准的URLEncode的值为:%D6%D0%B9%FA%CE%E4%BA%BA,而在C#中得到的却是:"%e4%b8%ad%e5%9b%bd%e6%ad%a6%e6%b1%89",完全不一样
编码问题要这样System.Web.HttpUtility.UrlEncode( "http://www.micorosoft.com/中国武汉.htm",System.Text.Encoding.GetEncoding("gbk") );
这样就是你要的结果,默认的是Unicode的。所以得出你后面的结果。
以下是参考msdn的:
1.WebBrowser 控件维护浏览会话期间访问的所有网页的历史记录列表。设置 Url 属性时,WebBrowser 控件导航到指定的 URL 并将该 URL 添加到历史记录列表的末尾。
2.WebBrowser 控件在本地硬盘的缓存中存储最近访问过的站点的网页。
不知道对你有帮助没。
谢谢各位,马上结贴
private string SendQuery(string szURL,string szQuery)
{
string szSend,szReturnString;
byte[] arybPost,arrbResult;
int lResultLen;
UTF8Encoding oEncode;
System.IO.Stream oSendStream, oResStream;
szSend = URLEncoding(szQuery); //System.Web.HttpUtility.UrlEncode(szQuery,System.Text.Encoding.GetEncoding("gbk"));
oEncode = new UTF8Encoding();
arybPost = oEncode.GetBytes(szSend);
System.Net.HttpWebRequest oRequest = (System.Net.HttpWebRequest)(System.Net.WebRequest.Create(szURL));
oRequest.Method = "POST";
oRequest.Accept = "*.*";
oRequest.ContentType = "application/x-www-form-urlencoded";
oRequest.ContentLength = arybPost.Length;
oSendStream = oRequest.GetRequestStream();
oSendStream.Write(arybPost, 0, arybPost.Length);
oSendStream.WriteTimeout = 60;
oSendStream.ReadTimeout = 60;
oRequest.Timeout = 60;
System.Net.HttpWebResponse oResponse = (System.Net.HttpWebResponse)oRequest.GetResponse();
arrbResult = new byte[204800];
if (!oResponse.StatusCode.ToString().Equals("OK"))
{
return "<?xmlversion=\"1.0\"encoding=\"GB2312\"?><HZKJversion=\"1.0\"type=\"Response\"><Public><ErrorMsg><Error><Type>F</Type><Number></number><Source>访问站点</Source><description>"+oResponse.StatusCode.ToString()+"//"+oResponse.StatusDescription+"</description></Error></ErrorMsg></Public><Service></Service><DeriveService></DeriveService></HZKJ>";
}
oResStream = oResponse.GetResponseStream();
lResultLen = oResStream.Read(arrbResult, 0, arrbResult.Length);
szReturnString = Encoding.Default.GetString(arrbResult, 0, lResultLen);
oResStream.Close();
oSendStream.Close();
return szReturnString;
}
private string URLEncoding(string szQuery)
{
long lngLoop,lngLen;
string szReturn="";
Encoding oEncodeDef = Encoding.Default;
byte[] arrbSend = oEncodeDef.GetBytes(szQuery);
lngLen = arrbSend.Length;
for (lngLoop=0;lngLoop<lngLen;lngLoop++)
{
if (arrbSend[lngLoop] < 128)
{
szReturn = szReturn + Convert.ToChar(arrbSend[lngLoop]);
}
else
{
szReturn = szReturn+"%" + Convert.ToString(Convert.ToInt16(arrbSend[lngLoop]), 16);
lngLoop++;
szReturn = szReturn+"%" + Convert.ToString(Convert.ToInt16(arrbSend[lngLoop]), 16);
}
}
return szReturn;
}