Веб-сервер 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?