Код ошибки HTTP 400 при использовании sim900 для отправки запросов на получение или публикацию


I have a SIM900 GSM module that I use to send GET and POST requests to servers.
Recently I rented a host for this purpose. I wrote a simple page using asp.net webforms to parse incoming data from the GSM module, everything was working until a few days ago I noticed that I no longer can receive data from my gsm module.
After investigating further I found out that the host I rented keeps returning HTTP 400 errors to my GSM module. These responses are not from IIS but from Microsoft-HTTPAPI/2.0. The request header is this:
GET /test/data?meow HTTP/1.1
Host : www.whatever.com
Connection : keep-alive

А это ответ сервера (тело опущено):

HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Sun, 11 Oct 2020 12:08:28 GMT
Connection: close
Content-Length: 339

Я использовал Postman (приложение) для моделирования того же запроса, и все работало нормально.
Я также сделал точную копию заголовка запроса Chrome и передал его модулю, но это тоже не сработало.
Примечание. : я не использую HTTP-команды sim900. Я подключаюсь к определенному порту (в данном случае 80) и отправляю запрос на получение вручную.
Примечание 2: Мне была предоставлена ​​панель Plesk для управления моим веб-сайтом, но у меня нет доступа к определенным настройкам сервера.


person Abol_Fa    schedule 11.10.2020    source источник
comment
Вы пытались опустить пробелы между именами заголовков и запятыми? их на самом деле не должно быть там   -  person Expolarity    schedule 11.10.2020
comment
@Экполярность да. это ничего не сделало.   -  person Abol_Fa    schedule 11.10.2020
comment
Вы пытались просмотреть это? Кажется, что-то похожее на вашу проблему   -  person Expolarity    schedule 11.10.2020


Ответы (1)


Запрос будет проходить через модуль http.sys перед входом в iis, который будет перехватывать запросы, не соответствующие правилам, поэтому ваш ответ приходит от Microsoft-HTTPAPI/2.0 с кодом состояния 400. Решением этого может быть изменить реестр, но настройка в реестре основана на вашем приложении и запросе, и универсального метода модификации не существует.

Как устранить ошибки HTTP 400

Параметры реестра Http.sys для Windows

Другой способ — предложить вам использовать инструмент, похожий на Fiddler, для захвата запроса, отправленного sim900, и запроса, отправленного почтальоном, соответственно. После захвата сравните их в деталях, чтобы выяснить различия, и измените запрос sim900, чтобы он совпадал с запросом почтальона, в соответствии с правилами http .sys.

person Bruce Zhang    schedule 13.10.2020