请高手们帮我看看这段代码,为什么在自己写的网页可以自动查询,而在交警网上就不可以了?代码如下:
protected void getsource()
{
byte[] buffer = Encoding.ASCII.GetBytes("LicenseTxt=A75839&VIN=gfdsjmjklsd989430854");
HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create("http://www.cqjg.gov.cn/DriverFind.html");
WebReq.Method = "POST";
WebReq.ContentType = "application/x-www-form-urlencoded";
WebReq.ContentLength = buffer.Length;
Stream PostData = WebReq.GetRequestStream();
PostData.Write(buffer, 0, buffer.Length);
PostData.Close();
HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
g2.Text = WebResp.StatusCode.ToString();
Stream Answer = WebResp.GetResponseStream();
StreamReader _Answer = new StreamReader(Answer);
Label2.Text = _Answer.ReadToEnd().ToString(); }//-----------------------------------------------------------------------------------------------------
错误信息:异常详细信息: System.Net.WebException: 远程服务器返回错误: (405) 不允许的方法。源错误:
行 40: PostData.Close();
行 41:
行 42: HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();行 43:
行 44: g2.Text = WebResp.StatusCode.ToString();
源文件: f:\WebSite1\Default3.aspx.cs 行: 42 堆栈跟踪:
[WebException: 远程服务器返回错误: (405) 不允许的方法。]
System.Net.HttpWebRequest.GetResponse() +868
Default3.getsource() in f:\综合课程设计\WebSite1\Default3.aspx.cs:42
Default3.Page_Load(Object sender, EventArgs e) in f:\综合课程设计\WebSite1\Default3.aspx.cs:19
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +43
System.Web.UI.Control.OnLoad(EventArgs e) +73
System.Web.UI.Control.LoadRecursive() +52
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2184
protected void getsource()
{
byte[] buffer = Encoding.ASCII.GetBytes("LicenseTxt=A75839&VIN=gfdsjmjklsd989430854");
HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create("http://www.cqjg.gov.cn/DriverFind.html");
WebReq.Method = "POST";
WebReq.ContentType = "application/x-www-form-urlencoded";
WebReq.ContentLength = buffer.Length;
Stream PostData = WebReq.GetRequestStream();
PostData.Write(buffer, 0, buffer.Length);
PostData.Close();
HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();
g2.Text = WebResp.StatusCode.ToString();
Stream Answer = WebResp.GetResponseStream();
StreamReader _Answer = new StreamReader(Answer);
Label2.Text = _Answer.ReadToEnd().ToString(); }//-----------------------------------------------------------------------------------------------------
错误信息:异常详细信息: System.Net.WebException: 远程服务器返回错误: (405) 不允许的方法。源错误:
行 40: PostData.Close();
行 41:
行 42: HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse();行 43:
行 44: g2.Text = WebResp.StatusCode.ToString();
源文件: f:\WebSite1\Default3.aspx.cs 行: 42 堆栈跟踪:
[WebException: 远程服务器返回错误: (405) 不允许的方法。]
System.Net.HttpWebRequest.GetResponse() +868
Default3.getsource() in f:\综合课程设计\WebSite1\Default3.aspx.cs:42
Default3.Page_Load(Object sender, EventArgs e) in f:\综合课程设计\WebSite1\Default3.aspx.cs:19
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +43
System.Web.UI.Control.OnLoad(EventArgs e) +73
System.Web.UI.Control.LoadRecursive() +52
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2184
而不是http://www.cqjg.gov.cn/DriverFind.html这个网址,这网址只是Referer。
你把编码定为unicode就能解决问题了。