Перепрыгнеть в содержание


- - - - -

Подскажите, чо вдруг бот перестал работать?


7 ответов в эту тему

#1 OFFLINE   pozitrone23

    ёпта


  • Участник II
  • ПипПипПип
  • 413 сообщения
19
  • МестоположениеСаранск

Добавлено 28 August 2015 - 13:18

Добрый день. Неожиданно вылезло исключение типа ProtocolViolationException при вызове метода GetResponse (прикрепил фотку). Я 3-ий день не могу понять в чем проблема - до этого прога работала наверно 1 год и такого типа ошибок не было, а тут я ее запустил после 3 месячного перерыва, и она выдала! Главное дело, я не пойму на какую именно ContentLenght указано, потому что, как видно на фотке, переменная ContentLenght = 409d. Тогда чо он мне гонит тут?((

Dim address As String = "https://api.betfair.com/exchange/betting/json-rpc/v1"
		Dim request As HttpWebRequest = CType(WebRequest.Create(address), HttpWebRequest)
		request.Method = "POST"
		request.ContentType = "application/json"
		request.Headers.Add(HttpRequestHeader.AcceptCharset, "UTF-8")
		request.Headers.Add("X-Application", key)
		request.Headers.Add("X-Authentication", token)
		If list = "listEvents" Then postData = Json_Object_events()
		Dim post_data_jsob As Newtonsoft.Json.Linq.JObject = JsonConvert.DeserializeObject(postData)
		post_data = post_data_jsob.ToString
		Dim bytes As Byte() = Encoding.GetEncoding("UTF-8").GetBytes(postData)
		request.ContentLength = bytes.Length
		Dim out_stream As Stream = request.GetRequestStream()
		out_stream.Write(bytes, 0, bytes.Length)

		Dim response As WebResponse = request.GetResponse

Attached File(s)

  • Прикрепленный файл  1.png   61.71K   0 Количество загрузок


#2 OFFLINE   denvb

    Специалист


  • Участник II
  • ПипПипПип
  • 382 сообщения
90

Добавлено 28 August 2015 - 13:27

меняли протокол, случайно не это?

#3 OFFLINE   pozitrone23

    ёпта


  • Участник II
  • ПипПипПип
  • 413 сообщения
19
  • МестоположениеСаранск

Добавлено 28 August 2015 - 18:14

 denvb, on 28 August 2015 - 13:27, сказал:

меняли протокол, случайно не это?

Эээ, спасибо, ща проверю) Скажи пжл, вот лично ты чо менял за последнее время?) :) а то я сто пудов какое-то обновление пропустил, а нигде не могу найти у них на сайте упоминание
Погоди
, в смысле поменять протокол? На какой? json 7.0.dll менял, но по-моему не помогло

Отредактировано pozitrone23, 28 August 2015 - 18:16.


#4 OFFLINE   AlexX

    Специалист


  • mp
  • 1106 сообщения
133

Добавлено 28 August 2015 - 18:17

 pozitrone23, on 28 August 2015 - 13:18, сказал:

Добрый день. Неожиданно вылезло исключение типа ProtocolViolationException при вызове метода GetResponse (прикрепил фотку). Я 3-ий день не могу понять в чем проблема - до этого прога работала наверно 1 год и такого типа ошибок не было, а тут я ее запустил после 3 месячного перерыва, и она выдала! Главное дело, я не пойму на какую именно ContentLenght указано, потому что, как видно на фотке, переменная ContentLenght = 409d. Тогда чо он мне гонит тут?((

Сделай обвертку (try catch) и запиши в лог ошибку тогда подскажем Вам.

 pozitrone23, on 28 August 2015 - 18:14, сказал:

Эээ, спасибо, ща проверю) Скажи пжл, вот лично ты чо менял за последнее время?) :) а то я сто пудов какое-то обновление пропустил, а нигде не могу найти у них на сайте упоминание
Погоди
, в смысле поменять протокол? На какой? json 7.0.dll менял, но по-моему не помогло

Ты когда последний раз до этого запускал бота ?

Если давненько то тебе сообщением выше уже помогли

#5 OFFLINE   pozitrone23

    ёпта


  • Участник II
  • ПипПипПип
  • 413 сообщения
19
  • МестоположениеСаранск

Добавлено 28 August 2015 - 19:05

 AlexX, on 28 August 2015 - 18:17, сказал:

Сделай обвертку (try catch) и запиши в лог ошибку тогда подскажем Вам.

Нет, это не поможет. Текст исключения вот(кстати на фотке выше его видно):
ProtocolViolationException occured:
Перед вызовом [Begin]GetResponse необходимо записать ContentLength байт в поток запроса.
Этот код работал в мае, ничо в нем не трогал. В принципе это самая обычная отправка байтов, тут вроде просто, но хрен тебе.
Потом прочел что можно попробовать закрыть поток:
out_stream.Close()
В этом случае ошибка
WebException occured:
Удаленный сервер возвратил ошибку: (417) Expectation Failed.

Отредактировано pozitrone23, 28 August 2015 - 19:06.


#6 OFFLINE   pozitrone23

    ёпта


  • Участник II
  • ПипПипПип
  • 413 сообщения
19
  • МестоположениеСаранск

Добавлено 28 August 2015 - 19:22

 denvb, on 28 August 2015 - 13:27, сказал:

меняли протокол, случайно не это?

Чот не катит :unsure:

#7 OFFLINE   pozitrone23

    ёпта


  • Участник II
  • ПипПипПип
  • 413 сообщения
19
  • МестоположениеСаранск

Добавлено 28 August 2015 - 19:51

 denvb, on 28 August 2015 - 13:27, сказал:

меняли протокол, случайно не это?

Прокатило) Спасибо denvb. твой должник)

Отредактировано pozitrone23, 28 August 2015 - 19:54.


#8 OFFLINE   denvb

    Специалист


  • Участник II
  • ПипПипПип
  • 382 сообщения
90

Добавлено 28 August 2015 - 21:14

 pozitrone23, on 28 August 2015 - 19:05, сказал:

Потом прочел что можно попробовать закрыть поток:
out_stream.Close()
В этом случае ошибка
WebException occured:
Удаленный сервер возвратил ошибку: (417) Expectation Failed.
всегда явно закрывай все открытые потоки, иначе в лучшем случае потечёт память, а в худшем твоё время в поисках косяка