Если мы возьмем их пример curl
командной строки:
curl -s --request POST \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "The patient had a stroke." \
http://snomedct.t3as.org/snomed-coder-web/rest/v1.0/snomedctCodes
, которые могут быть переведены на httr
довольно легко.
-s
означает «тихий» (без индикатора прогресса или сообщений об ошибках), поэтому нам не нужно это переводить.
Любое -H
означает, что хотите добавить заголовка в запрос. Этот конкретный заголовок Content-Type
может быть обработан лучше с параметром encode
до httr::POST
.
Параметр --data-urlencode
указывает URL-кодировать эту строку и помещать ее в body
запроса.
И, наконец, URL-адрес является ресурсом для вызова.
library(httr)
result <- POST("http://snomedct.t3as.org/snomed-coder-web/rest/v1.0/snomedctCodes",
body="The patient had a stroke.",
encode="form")
Поскольку вы не делаете это регулярно, вы можете обернуть POST
вызов с with_verbose()
, чтобы увидеть, что происходит (посмотреть, что вверх в httr
документы).
Есть тонна нюансов, которые нужно технически сделать после этого (как проверить код состояния HTTP с stop_for_status()
, warn_for_status()
или даже просто status_code()
, но для простоты предположит работу вызовов (это один их пример так делает работа и возвращает код состояния 200
HTTP, который является хорошей вещью).
по умолчанию, что веб-сервис возвращает JSON, так что нам нужно, чтобы преобразовать его в объект R. в то время как httr
имеет встроенный разборе, мне нравится для обработки результата jsonlite
.
dat <- jsonlite::fromJSON(content(result, as="text"), flatten=TRUE)
Функция fromJSON
выполняет несколько параметров, которые призваны помочь сформировать JSON в разумную структуру данных R (многие API возвращают ужасные JSON и/или XML). Этот API будет вписываться в категорию «ужасных». Данные в dat
довольно грубые, и дальнейшее их декодирование будет отдельным вопросом SO.
Вы пробовали что-нибудь или хотите, чтобы мы это закодировали? – grubjesic
Взгляните на пакет [rvest] (http://blog.rstudio.org/2014/11/24/rvest-easy-web-scraping-with-r/). – ulfelder
Звучит как _awesome_ возможность сесть с холодным напитком и ознакомиться с [Просмотр задачи CRAN на веб-технологиях] (https://cran.rstudio.com/web/views/WebTechnologies.html). – hrbrmstr