- [C#] Chia sẻ source code phần mềm đếm số trang tập tin file PDF
- [C#] Cách Sử Dụng DeviceId trong C# Để Tạo Khóa Cho Ứng Dụng
- [SQLSERVER] Loại bỏ Restricted User trên database MSSQL
- [C#] Hướng dẫn tạo mã QRcode Style trên winform
- [C#] Hướng dẫn sử dụng temp mail service api trên winform
- [C#] Hướng dẫn tạo mã thanh toán VietQR Pay không sử dụng API trên winform
- [C#] Hướng Dẫn Tạo Windows Service Đơn Giản Bằng Topshelf
- [C#] Chia sẻ source code đọc dữ liệu từ Google Sheet trên winform
- [C#] Chia sẻ source code tạo mã QR MOMO đa năng Winform
- [C#] Chia sẻ source code phần mềm lên lịch tự động chạy ứng dụng Scheduler Task Winform
- [Phần mềm] Tải và cài đặt phần mềm Sublime Text 4180 full version
- [C#] Hướng dẫn download file từ Minio Server Winform
- [C#] Hướng dẫn đăng nhập zalo login sử dụng API v4 trên winform
- [SOFTWARE] Phần mềm gởi tin nhắn Zalo Marketing Pro giá rẻ mềm nhất thị trường
- [C#] Việt hóa Text Button trên MessageBox Dialog Winform
- [DEVEXPRESS] Chia sẻ code các tạo report in nhiều hóa đơn trên XtraReport C#
- [POWER AUTOMATE] Hướng dẫn gởi tin nhắn zalo từ file Excel - No code
- [C#] Chia sẻ code lock và unlock user trong domain Window
- [DEVEXPRESS] Vẽ Biểu Đồ Stock Chứng Khoán - Công Cụ Thiết Yếu Cho Nhà Đầu Tư trên Winform
- [C#] Hướng dẫn bảo mật ứng dụng 2FA (Multi-factor Authentication) trên Winform
[VB.NET] Hướng dẫn giải captcha sử dụng dịch vụ AZCaptcha API trên winform
Xin chào các bạn, bài viết hôm nay mình tiếp tục hướng dẫn các bạn cách giải image captcha sử dụng dịch vụ AZCapcha trên lập trình VB.NET winform.
Bài viết chỉ nhằm mục đích học tập, cách gọi API, không sử dụng cho mục đích xấu truy cập website trái phép.
[VB.NET] Resolve captcha use AZCaptcha API services
AZCaptcha là dịch vụ api giải captcha: Image Captcha (normal captcha), Hcaptcha, recaptcha v1, v2 of Google...
Dưới đây, là hình ảnh demo ứng dụng:
Đầu tiên, các bạn cần đăng ký 1 tài khoản API tại đường dẫn: https://azcaptcha.com/
Với tài khoản đăng ký bạn sẽ được request miễn phí 50 lần.
Còn phí thì chỉ có 0/4$ / 1000 captcha, và mua tối thiểu phải 10$ qua cổng thanh toán: paypal, visa...
Đầu tiên, mình đã tạo sẵn 1 class AZCaptchaHelper.vb
, để gọi Api này.
Video hướng dẫn Step by step:
Source code AZCaptchaHelper.vb
Imports System.IO
Imports System.Net
Imports System.Text
Public Class AZCaptchaHelper
Public Shared Function GetHTMLForm(ByVal Url As String) As String
Dim myRequest As HttpWebRequest = CType(WebRequest.Create(Url), HttpWebRequest)
myRequest.Method = "GET"
Dim myResponse As WebResponse = myRequest.GetResponse()
Dim sr As StreamReader = New StreamReader(myResponse.GetResponseStream(), System.Text.Encoding.UTF8)
Dim result As String = sr.ReadToEnd()
sr.Close()
myResponse.Close()
Return result
End Function
Public Shared Function ImageToBase64(img As Image) As String
Return Convert.ToBase64String(ImageToByteArray(img))
End Function
Public Shared Function ImageToByteArray(img As Image) As Byte()
Using strm As New MemoryStream
img.Save(strm, img.RawFormat)
Return strm.GetBuffer()
End Using
End Function
Public Shared Function GetStringFromCaptcha(base64string As String, API_KEY As String) As String
Try
System.Net.ServicePointManager.Expect100Continue = False
Dim request = CType(WebRequest.Create("http://azcaptcha.com/in.php"), HttpWebRequest)
Dim postData = "method=base64&key=" & API_KEY & "&body=" + WebUtility.UrlEncode(base64string)
Dim data = Encoding.ASCII.GetBytes(postData)
request.Method = "POST"
request.ContentType = "application/x-www-form-urlencoded"
request.ContentLength = data.Length
Using stream = request.GetRequestStream()
stream.Write(data, 0, data.Length)
End Using
Dim response = CType(request.GetResponse(), HttpWebResponse)
Dim responseString As String = New StreamReader(response.GetResponseStream()).ReadToEnd()
If responseString.Contains("OK|") Then
Dim captcha As String = ""
While True
captcha = GetHTMLForm("http://azcaptcha.com/res.php?key=" & API_KEY & "&action=get&id=" & responseString.Split("|"c)(1))
If captcha = "CAPCHA_NOT_READY" Then
System.Threading.Thread.Sleep(500)
Continue While
End If
If captcha = "_" Then
System.Threading.Thread.Sleep(500)
Continue While
End If
If captcha.Contains("OK|") Then
captcha = captcha.Replace("OK|", "")
End If
Return captcha
End While
End If
Return ""
Catch e As Exception
Dim tt As String = e.Message
Return tt
End Try
End Function
End Class
Và cách gọi sử dụng ở form1.vb
Public Class Form1
Private ReadOnly API_KEY As String = "6bj3v2hlfxzmqprggccv74fdqxpnmnyh"
Private Sub btnBrowse_Click(sender As Object, e As EventArgs) Handles btnBrowse.Click
Dim opendialog = New OpenFileDialog()
If opendialog.ShowDialog() = DialogResult.OK Then
PictureBox1.Load(opendialog.FileName)
End If
End Sub
Private Async Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim image As Image = PictureBox1.Image
Dim myTask As Task(Of String) = New Task(Of String)(Function()
If image IsNot Nothing Then
Dim baseString = AZCaptchaHelper.ImageToBase64(image)
Dim stringCaptcha = AZCaptchaHelper.GetStringFromCaptcha(baseString, API_KEY)
Return stringCaptcha
End If
Return Nothing
End Function)
myTask.Start()
Dim value As String = Await myTask
lblResult.Text = value
End Sub
End Class
Thanks for waching!