|
Узнать короткую ссылку без ожидания 15 секунд
#39821153
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
|
Участник
Откуда: 307cwam.ucoz.ru
Сообщения: 322
|
|
Здравствуйте!
---------------
Как
Можно узнать короткую ссылку без ожидания 15 секунд?
Почему WebClient тормозит и ссылку выдает только спустя 15 секунд?
Он выполняет каткутовский код что-ли, не пойму.
---
Помогите сделать, чтобы она сразу грузилась, без ожидания.
Я использую такой код:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52.
Imports System.Net
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.TextBox1.Text = "http://catcut.net/3adB "
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
On Error GoTo 1
Dim WC As New WebClient
Dim str As String
Dim cc As String
Dim i As Integer = 0
'для теста http://catcut.net/Dj8B
cc = Me.TextBox1.Text
Me.TextBox1.Enabled = False
WC.Proxy = New System.Net.WebProxy
WC.Encoding = System.Text.Encoding.UTF8
str = WC.DownloadString(cc)
WC.Dispose()
Dim rezult() As String = ParseAll(str, "var go_url = decodeURIComponent('", "'")
'Threading.Thread.Sleep(15000) ' при слепе программа намертво висит пока не обработает все ссылки
For i = 0 To UBound(rezult)
rezult(i) = Replace(rezult(i), "%25", "%")
rezult(i) = Replace(rezult(i), "%26", "&")
rezult(i) = Replace(rezult(i), "%2A", "*")
rezult(i) = Replace(rezult(i), "%2F", "/")
rezult(i) = Replace(rezult(i), "%3A", ":")
rezult(i) = Replace(rezult(i), "%3B", ";")
rezult(i) = Replace(rezult(i), "%3D", "=")
rezult(i) = Replace(rezult(i), "%3F", "?")
MsgBox(rezult(i) & vbNewLine & "Если подождать 15 секунд и закрыть месагу," & vbNewLine & "то получим нашу короткую ссылку.")
WC.Proxy = New System.Net.WebProxy
WC.Encoding = System.Text.Encoding.UTF8
rezult(i) = WC.DownloadString(rezult(i))
WC.Dispose()
rezult(i) = Replace(rezult(i), "%2F", "/")
rezult(i) = Replace(rezult(i), "%3A", ":")
MsgBox("Наш результат ↓" & vbNewLine & rezult(i))
Next i
Exit Sub
1:
MsgBox(Err.Number & vbNewLine & Err.Description)
End Sub
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Public Function ParseAll(ByVal str As String, ByVal str1 As String, ByVal str2 As String) As String()
Dim i As Integer = 0
Dim len1 As Integer = str1.Length
Dim len2 As Integer = str2.Length
Dim rezult As New List(Of String)
Do While i < str.Length
Dim i1 As Integer = str.IndexOf(str1, i, StringComparison.OrdinalIgnoreCase)
Dim i2 As Integer = str.IndexOf(str2, i1 + len1)
If i1 = -1 OrElse i2 = -1 Then
Exit Do
End If
rezult.Add(str.Substring(i1 + len1, i2 - (i1 + len1)))
i = i2 + len2
Loop
Return rezult.ToArray()
End Function
Пример во вложении.
|
|
|