Страница: 1 |
Страница: 1 |
Вопрос: Таймаут GetRequestStream
Добавлено: 18.08.08 12:26
Автор вопроса: Александр | Web-сайт:
Имеется вод такой отрезок кода
'
'
' 'передаем параметры
Dim sQueryString As String = "user=*****&password=***********&rem=1&a=2&ajax=2"
Dim bf As Byte()
bf = System.Text.Encoding.GetEncoding(1251).GetBytes(sQueryString)
req.ContentLength = bf.Length
req.GetRequestStream().Write(bf, 0, bf.Length)
'Делаем запрос
res = req.GetResponse
Проблема в том, что при подключении через прокси все работает, при подключении без прокси - тайм аут GetRequestStream - в обоих случаях req.Proxy = WebRequest.DefaultWebProxy
Подскажите, пожалуйста в чем проблема?
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
Александр
Вопросов: 15
Ответов: 39
Web-сайт:
Профиль | | #1
Добавлено: 18.08.08 16:05
Забыл сказать, что в другом проекте все тоже самое, только запросы на другой сайт идут и все ок!...помогите плиз, очень надо!
Номер ответа: 2
Автор ответа:
Александр
Вопросов: 15
Ответов: 39
Web-сайт:
Профиль | | #2
Добавлено: 21.08.08 22:38
Не верю, что никто не знает ответа на этот вопрос - повторюсь - ОЧЕНЬ НАДО!!!
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 22.08.08 16:15
Попробуй sQueryString кодировать в UTF8
Номер ответа: 4
Автор ответа:
Александр
Вопросов: 15
Ответов: 39
Web-сайт:
Профиль | | #4
Добавлено: 22.08.08 18:46
Пробовал - непомогает(((...есть еще какие-нибудь предложения?
Номер ответа: 5
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #5
Добавлено: 23.08.08 21:24
Кидай кусок кода по больше, чтобы видно было как всё объявляешь.
Теор. timeout на GetRequestStream может быть, когда коннектишся по https без сертификата.
Покрути по параметрам WebRequest, задай ContentType, ContentLength, задай Timeout побольше...
хз ещё какие предположения, надо видеть больше кода.
Номер ответа: 6
Автор ответа:
Александр
Вопросов: 15
Ответов: 39
Web-сайт:
Профиль | | #6
Добавлено: 24.08.08 17:17
Вот кусок побольше..
Imports System.IO
Imports System.Text
Module Sender
Public vt As String
Dim sCookies, tmp, tmp_c(10), FndWord As String
Dim position As Integer
Dim agent As String = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MyIE2" '"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9b1) Gecko/2007110904 Firefox/3.0b1"
Dim acc As String = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
Dim chs As String = "windows-1251,utf-8;q=0.7,*;q=0.7"
Dim encod As String = "deflate"
Dim lang As String = "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3"
Public Function send_auto_ucoz(ByVal adr As String, ByVal login As String, ByVal pass As String) As Boolean
Try
If adr.Substring(adr.Length - 1) <> "/" Then
adr = adr & "/"
End If
If adr.IndexOf("http://" <> 0 Then
adr = "http://" & adr
End If
'MsgBox(adr, MsgBoxStyle.Information)
' Headers
'Формируем запрос
Dim req As HttpWebRequest = HttpWebRequest.Create("http://www.fufla.net.ru/forum/"
Dim res As HttpWebResponse
req.Proxy = WebRequest.DefaultWebProxy
req.Method = "GET"
req.UserAgent = agent
req.Accept = acc
req.Headers.Add("Accept-Language", lang)
req.Headers.Add("Accept-Charset", chs)
req.Headers.Add("Accept-Encoding", encod)
'Делаем запрос
res = req.GetResponse
'Получаем куки
If Not String.IsNullOrEmpty(res.Headers("Set-Cookie") Then
sCookies = res.Headers("Set-Cookie"
End If
'Формируем запрос /40
req = HttpWebRequest.Create("http://www.fufla.net.ru/index/40"
req.Proxy = WebRequest.DefaultWebProxy 'GlobalProxySelection.GetEmptyWebProxy
req.Method = "GET"
req.UserAgent = agent
req.Accept = acc
req.Headers.Add("Accept-Language", lang)
req.Headers.Add("Accept-Charset", chs)
req.Headers.Add("Accept-Encoding", encod)
req.ContentType = "application/x-www-form-urlencoded"
If Not String.IsNullOrEmpty(sCookies) Then
req.Headers.Add(HttpRequestHeader.Cookie, sCookies)
End If
'Делаем запрос
res = req.GetResponse
'Получаем куки
If Not String.IsNullOrEmpty(res.Headers("Set-Cookie") Then
sCookies = res.Headers("Set-Cookie"
End If
'формируем запрос
req = HttpWebRequest.Create("http://www.fufla.net.ru/index/"
req.Proxy = WebRequest.DefaultWebProxy 'GlobalProxySelection.GetEmptyWebProxy
req.Method = "POST"
req.Referer = "http://www.fufla.net.ru/forum/"
req.UserAgent = agent
req.Accept = acc
req.Headers.Add("Accept-Language", lang)
req.Headers.Add("Accept-Charset", chs)
req.Headers.Add("Accept-Encoding", encod)
req.ContentType = "text/plain"
If Not String.IsNullOrEmpty(sCookies) Then
req.Headers.Add(HttpRequestHeader.Cookie, sCookies)
End If
'передаем параметры
Dim sQueryString As String = "user=awkaw&password=230166&rem=1&a=2&ajax=2"
Dim buffer As Byte()
Buffer = System.Text.Encoding.GetEncoding(1251).GetBytes(sQueryString)
req.ContentLength = Buffer.Length
'MsgBox(req.GetRequestStream.ToString, MsgBoxStyle.Information)
'System.Net.connectstream()
req.GetRequestStream.Write(buffer, 0, buffer.Length)
'Делаем запрос
res = req.GetResponse
'Получаем куки
If Not String.IsNullOrEmpty(res.Headers("Set-Cookie") Then
sCookies = res.Headers("Set-Cookie"
End If
Dim stream As System.IO.Stream = res.GetResponseStream
Dim sr As New System.IO.StreamReader(stream, System.Text.Encoding.GetEncoding(1251))
vt = sr.ReadToEnd
tmp = vt
FndWord = Chr(34) & "+ad+" & Chr(34)
position = tmp.IndexOf(FndWord, 0)
tmp = tmp.Remove(position + 13, tmp.Length - position - 13)
tmp = tmp.Remove(0, position + 6)
'Формируем запрос
req = HttpWebRequest.Create("http://www.fufla.net.ru/forum" & tmp & "/"
req.Proxy = WebRequest.DefaultWebProxy 'GlobalProxySelection.GetEmptyWebProxy
req.Method = "GET"
req.UserAgent = agent
req.Accept = acc
req.Headers.Add("Accept-Language", lang)
req.Headers.Add("Accept-Charset", chs)
req.Headers.Add("Accept-Encoding", encod)
req.Referer = "http://www.fufla.net.ru/forum/"
'передаем куки
If Not String.IsNullOrEmpty(sCookies) Then
req.Headers.Add(HttpRequestHeader.Cookie, sCookies)
End If
'Делаем запрос
res = req.GetResponse
'Получаем куки
If Not String.IsNullOrEmpty(res.Headers("Set-Cookie") Then
sCookies = res.Headers("Set-Cookie"
End If
Dim stream_1 As System.IO.Stream = res.GetResponseStream
Dim sr_1 As New System.IO.StreamReader(stream_1, System.Text.Encoding.GetEncoding(1251))
vt = ""
vt = sr_1.ReadToEnd
'Выход с форума - запрос по адресу index/10
Return True
Catch ex As Exception
MsgBox("Ошибка: " & ex.ToString, MsgBoxStyle.Critical)
Return False
End Try
End Function
Номер ответа: 7
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #7
Добавлено: 26.08.08 02:59
Влом вчитываться.. у меня работает.
RichTextBox1.Text = SendRequest("http://www.fufla.net.ru/index/", "user=awkaw&password=230166&rem=1&a=2&ajax=2"
End Sub
Public Function SendRequest(ByVal url As String, ByVal SendData As String, Optional ByVal SendMethod As String = "POST" As String
Dim Request As HttpWebRequest
Dim POSTData As Byte() = System.Text.Encoding.UTF8.GetBytes(SendData.ToCharArray())
Request = HttpWebRequest.Create(url)
Request.Method = SendMethod
Request.ContentType = "application/x-www-form-urlencoded"
Request.ContentLength = POSTData.Length
Request.Accept = "*/*"
Request.GetRequestStream().Write(POSTData, 0, POSTData.Length)
Request.GetRequestStream().Close()
Dim Response As WebResponse = Request.GetResponse()
Dim Reader As New StreamReader(Response.GetResponseStream, System.Text.Encoding.UTF8)
SendRequest = Reader.ReadToEnd
Response.Close()
Reader.Close()
End Function
Номер ответа: 8
Автор ответа:
Александр
Вопросов: 15
Ответов: 39
Web-сайт:
Профиль | | #8
Добавлено: 26.08.08 23:47
Все, разобрался! После запроса нужно обязательно его закрывать, чего я не делал...всем спасибо!!!