Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 09.10.2017
Сообщений: 15
1

Ошибка: System.Net.WebException: "Сервер нарушил протокол. Section=ResponseStatusLine"

26.02.2018, 09:58. Показов 2493. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Программа отправляет статистику которую можно просмотреть командой в браузере.
Набрав: http://192.168.1.105:42000/getstat
мы получаем ответ:
JSON
1
{"method":"getstat", "error":null, "start_time":1519626835, "current_server":"mining.miningspeed.com:3092", "available_servers":1, "server_status":2, "result":[{"gpuid":0, "cudaid":0, "busid":"0000:01:00.0", "name":"GeForce GTX 1060 6GB", "gpu_status":2, "solver":0, "temperature":67, "gpu_power_usage":84, "speed_sps":283, "accepted_shares":22, "rejected_shares":0, "start_time":1519626837},{"gpuid":1, "cudaid":1, "busid":"0000:08:00.0", "name":"GeForce GTX 1060 6GB", "gpu_status":2, "solver":0, "temperature":59, "gpu_power_usage":96, "speed_sps":307, "accepted_shares":30, "rejected_shares":0, "start_time":1519626837}]}
Программно пытаюсь получить ответ:

VB.NET
1
2
3
4
5
        Dim json As String
 
        Using web As New WebClient
            json = web.DownloadString("http://192.168.1.105:42000/getstat")
        End Using
И вылетает ошибка: System.Net.WebException: "Сервер нарушил протокол. Section=ResponseStatusLine"
На любые внешние ссылки всё работает отлично.
Подскажите, что я делаю не так?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.02.2018, 09:58
Ответы с готовыми решениями:

Вылезает ошибка при отправке пакета: "A first chance exception of type 'System.Net.WebException' occurred in System.dll"
Код выглядит так. Function getsid(login As String, password As String) As String Dim...

Необработанное исключение типа "System.Net.WebException"
Доброго времени дня! Есть задача сохранять на сервере документы в формате htm, которые...

Парсинг Html: Часто вылетает ошибка "Сервер нарушил протокол. Section=ResponseStatusLine"
Часто вылетает ошибка "Сервер нарушил протокол. Section=ResponseStatusLine" , документации по ней...

WebClient() Выдает - . нарушил протокол: Section=ResponseStatusLine
Подскажите в чем может быть проблема? Пытаюсь получить номер версии записанной в тексте, но получаю...

System.Net Proxy WebException: Удаленный сервер возвратил ошибку: (403) Запрещено
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.2ip.ru"); request.UserAgent...

1
0 / 0 / 0
Регистрация: 09.10.2017
Сообщений: 15
01.04.2018, 14:14  [ТС] 2
Поправка к старой теме.
Есть сторонняя программа которая отправляем статистику которую можно считать API запросом: http://192.168.1.105:42000/getstat

Из описания сторонней программы:
Кликните здесь для просмотра всего текста

"Описание API.
Api устанавливает соединение tcp и передает через него данные json, как протокол stratum.
Каждый запрос и ответ json должен быть закончен новым символом строки \ n, этот символ используется
как знак окончания данных."
Пример запроса: {"id":1, "method":"getstat"}\n
Пример ответа:
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
{"id":1, "method":"getstat", "error":null, "result":[{
        "gpuid":0, 
        "cudaid":0, 
        "busid":"0000:01:00.0", 
        "gpu_status":2, 
        "solver":0, 
        "temperature":64, 
        "gpu_power_usage":150, 
        "speed_sps":420, 
        "accepted_shares":1000, 
        "rejected_shares":1
    },{
        "gpuid":1, 
        "cudaid":1, 
        "busid":"0000:04:00.0", 
        "gpu_status":2, 
        "solver":0, 
        "temperature":70, 
        "gpu_power_usage":100, 
        "speed_sps":410, 
        "accepted_shares":1111, 
        "rejected_shares":2
    }
]}\n
Метод getstat:
Параметры запроса:
id необязательный, type: unsigned int, ответ будет иметь этот идентификатор.
method обязательный, type: string, имя метода

Параметры ответа:
id type: unsigned, id от запроса или 0 в другом случае.
method type: string, имя метода
error type: null, string, null если нет сообщения об ошибке
start_time type: unsigned, время запуска минара (доступно с версии 0.3.4b)
current_server type: string, текущее имя сервера (доступно с 0.3.4b)
available_servers type: unsigned, количество доступных серверных серверов (доступно с 0.3.4b)
server_status type: unsigned, статус текущего сервера. (доступно с 0.3.4b)
-1 ошибка сервера
0 сервер, ожидающий соединения
1 сервер подписан
2 сервер авторизован и работает отлично
3 отключение сервера
result type: array of objects, массив содержит объекты по одному для каждого gpu

result[0].gpuid type: unsigned, внутренний идентификатор gpu
result[0].cudaid type: unsigned, Идентификатор gpu cuda
result[0].busid type: string, идентификатор шины pci в формате: 0000:00:00.0
result[0].name type: string, имя gpu (доступно с 0.3.4b)
result[0].gpu_status type: unsigned, статус gpu
0 - gpu запущен, но еще не работает,
1 - gpu запущен, но он готовится к работе, например, выполняет контрольный тест.
2 - gpu работает
3 - GPU остановился, например, достигнут температурный предел
result[0].solver type: unsigned, выбранный решатель
result[0].temperature type: integer, температура ядра gpu
result[0].gpu_power_usage type: unsigned, gpu в ваттах, не все устройства поддерживают это, в этом случае это значение будет 0
result[0].speed_sps type: unsigned, производительность gpu в разрешении в секунду
result[0].accepted_shares type: unsigned, количество принятых акций
result[0].rejected_shares type: unsigned, количество отклоненных акций
result[0].start_time type: unsigned, время, когда рабочий был запущен (доступный с 0.3.4b)

Примечание: температура, gpu_power_usage и speed_sps обновляются каждые 30 секунд.


Но самое интересное вот это:
Кликните здесь для просмотра всего текста
Поскольку версия 0.3.4b api доступна через простой HTTP-запрос:
вы можете просто сделать http-запрос к адресу api в этом формате: http://127.0.0.1:42000/"method name"
например http://127.0.0.1:42000/getstat
также вы можете открыть http://127.0.0.1:42000 это покажет вам простую веб-страницу с статистикой шахтеров


Т.е. TCP заморачиваться не нужно. Подскажите как программно считать ответ, что бы не было ошибки с первого поста?
0
01.04.2018, 14:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.04.2018, 14:14
Помогаю со студенческими работами здесь

System.Net.WebException: "Удаленный сервер возвратил ошибку: (400) Недопустимый запрос
Добрый вечер, учусь работать с веб сервисами, но постоянно куча ошибок(( хочу передать xml файл из...

Сервер нарушил протокол при обращении к сервису для контроллеров
Добрый день, обращаюсь из c# к своему же сервису: http://localhost:8000/Prc=Test Сервис для...

System.Net.WebException на другом ПК
Народ выручайте, всю голову сломал уже. using System; using System.Collections.Generic; using...

System.Net.WebException Недопустимый запрос
System.Net.WebException: "Удаленный сервер возвратил ошибку: (400) Недопустимый запрос." ...

Вылетает программа с ошибкой System.Net.WebException
Сигнатура проблемы: Имя события проблемы: CLR20r3 Сигнатура проблемы 01: qwerty.exe ...

System.Net.WebException Время ожидания операции истекло
Помогите заставить такой код работать. using System.Collections.Generic; using System.Linq;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru