OCR_BMP(byval _bmpFile as string)是个图形识别函数---公司购买的。我用下面的代码,校验码已经识别成功了,但是提交上去却提示校验码不对?GetCheckCode 为下载到本地并且识别---是我写的
我这样
'下载校验码图片保存当前目录
Public Function GetCheckCode()
Try
Dim myWebclient As WebClient
Dim remoteUri As String = "http://****/index.php?act=validate.image&rand=0.3251639807483244"
Dim fileName As String = "CheckCode.bmp" If System.IO.File.Exists(fileName) Then
System.IO.File.Delete(fileName)
End If
myWebclient = New WebClient()
myWebclient.DownloadFile(New Uri(remoteUri), fileName) _oh.OCR_BMP(fileName) Return OcrResult
Catch ex As Exception
'MsgBox(ex.ToString)
Return "" End Try
End Function
提交的函数:(Me.TextBox1.Text为测试GET的到的内容,提示为验证码错误!)
Me.TextBox1.Text = _hh.Get("http://*****/index.php?checkcode=" & strCheckCode & "&sdtid=" & oocId & "&rand=459315", _reffer)
我这样
'下载校验码图片保存当前目录
Public Function GetCheckCode()
Try
Dim myWebclient As WebClient
Dim remoteUri As String = "http://****/index.php?act=validate.image&rand=0.3251639807483244"
Dim fileName As String = "CheckCode.bmp" If System.IO.File.Exists(fileName) Then
System.IO.File.Delete(fileName)
End If
myWebclient = New WebClient()
myWebclient.DownloadFile(New Uri(remoteUri), fileName) _oh.OCR_BMP(fileName) Return OcrResult
Catch ex As Exception
'MsgBox(ex.ToString)
Return "" End Try
End Function
提交的函数:(Me.TextBox1.Text为测试GET的到的内容,提示为验证码错误!)
Me.TextBox1.Text = _hh.Get("http://*****/index.php?checkcode=" & strCheckCode & "&sdtid=" & oocId & "&rand=459315", _reffer)
Public Function GetBMP()
Dim req As HttpWebRequest
Dim res As HttpWebResponse
req = HttpWebRequest.Create("http://*****/index.php?act=validate.image&rand=0.3251639807483244")
req.CookieContainer = _cc
res = req.GetResponse
Dim Img As New System.Drawing.Bitmap(res.GetResponseStream) Return Img End Function
2:在同一个Session里做,也就是说客户端要是同一个,否则,也要把第一次获取验证码时的cookie复制到提交时的对象里。
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
{
string strResult = "";
HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(strURL);
myHttpWebRequest.AllowAutoRedirect = true;
myHttpWebRequest.KeepAlive = true;
myHttpWebRequest.Accept = "image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*";
myHttpWebRequest.Referer = strReferer;
myHttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 2.0.50727)";
myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
myHttpWebRequest.Method = "POST"; CookieCollection myCookies = null;
CookieContainer myCookieContainer = new CookieContainer();
myHttpWebRequest.CookieContainer = myCookieContainer; Stream MyRequestStrearm = myHttpWebRequest.GetRequestStream();
StreamWriter MyStreamWriter = new StreamWriter(MyRequestStrearm,Encoding.ASCII);
MyStreamWriter.Write(strArgs);
MyStreamWriter.Close();
MyRequestStrearm.Close(); HttpWebResponse response = null;
System.IO.StreamReader sr = null;
response = (HttpWebResponse)myHttpWebRequest.GetResponse(); cookieHeader = myHttpWebRequest.CookieContainer.GetCookieHeader(new Uri(strURL));
HttpContext.Current.Application.Lock();
HttpContext.Current.Application["cookieHeader"] = cookieHeader;
HttpContext.Current.Application.UnLock();
myCookies = response.Cookies; sr = new System.IO.StreamReader(response.GetResponseStream(),Encoding.GetEncoding("gb2312"));
strResult = sr.ReadToEnd();
return strResult;
}
你程序是不是先打开 url调取图片识别(这里实际上又访问了一次,产生了一个新的验证码session)再提交一开始的url??
这样貌似不行把