Базовое использование Rubi on Rails API RiotGames (нужно пояснение, решение уже найдено) - PullRequest
0 голосов
/ 15 ноября 2018

Сначала вы должны знать, что я новичок, я пытаюсь учиться, поэтому я почти ничего не знаю.

На базовой странице API естьэто команда curl, используемая в качестве примера, чтобы показать нам, как делать запросы.

Я использую Ruby on Rails, поэтому я использовал веб-сайт «curl-to-ruby» для его перевода, но он не работал какожидал.

Я хотел, чтобы это показало мне это:

uri = URI.parse("REQUEST_URL")
response = JSON.parse(Net::HTTP.get(uri))

Вместо этого я получил это:

uri = URI.parse("REQUEST_URL")
response = Net:HTTP.get_response(uri)

Я ничего не понимаю, подумал яМне не нужно было бы и просто использовать "curl-to-ruby", но, очевидно, мне действительно нужно это получить.

Не могли бы вы попытаться объяснить мне?Или дайте мне ссылки?Или вопросы для чтения (curl, API, http)?

Большое спасибо, хорошего дня.

1 Ответ

0 голосов
/ 15 ноября 2018

Это потому, что эта команда не возвращает только содержимое, она возвращает весь объект ответа HTTP, включая заголовки и тело.Вам нужно извлечь тело ответа и проанализировать его с помощью JSON.parse (), например,

JSON.parse(response.body)

См. Документацию здесь: https://docs.ruby -lang.org / ru / 2.0.0 / Net /HTTP.html # method-c-get_response

(Кроме того, в команде cURL нет ничего, что указывало бы конвертеру, что тип содержимого ответа должен был быть JSON (например, возможно,заголовок «принимает» или что-то в этом роде), поэтому, даже если бы он смог создать дополнительный код, добавляя часть JSON.parse, он не может знать, что в этом случае будет уместно.)

...