Веб-сервер Puma выдает ошибку "Http malformed" при вызове из HttpClient из Azure IoT Dev Kit

Я пишу код для MXCHIP и хочу использовать HttpClient из набора Azure IoT для подключения к своему веб-сервису.

Код "работает", так как моя конечная точка называется, но сервер (Sinatra с веб-сервером Puma) жалуется, что http-запрос искажен, и из моих исследований видно, что это потому, что клиент, похоже, запрашивает SSL. Но ничто в моем коде не делает этого.

У меня есть этот простой сервер Синатра:

require 'sinatra'
require 'json'

set :bind, '0.0.0.0'

get '/door' do
  puts "X #{params['axis_x']}"
  puts "Y #{params['axis_y']}"
  puts "Z #{params['axis_z']}"

  content_type :text
  puts JSON.pretty_generate(request.env)
end

и клиент ничего не делает (некоторый код удален для удобства чтения):

HTTPClient *httpClient = new HTTPClient(HTTP_GET, url);
const Http_Response *result = httpClient->send();
if (result == NULL) {
   /* error handling */
}
delete httpClient;

код работает, и запрос GET с некоторыми параметрами запроса поступает на сервер, но сервер всегда печатает:

HTTP parse error, malformed request (): #<Puma::HttpParserError: 
Invalid HTTP format, parsing fails.>

Мой поиск в Google говорит мне, что это то, что я мог бы получить, если бы я использовал URL, начинающийся с "https://", но я этого не делаю. Начинается с http://

Я получаю вызов и все параметры запроса, так почему же Puma печатает эту ошибку?

Кроме того, если я создаю URL в браузере, я не получаю эту ошибку в Puma. Так что же такое проблемы с Azure IoT DevKit HttpClient?

0 ответов

Другие вопросы по тегам