Загрузка файла CSV в API с использованием R - PullRequest
0 голосов
/ 12 декабря 2018

Может кто-нибудь помочь с кодами для подключения API с использованием R и загрузки файла, содержащего около 2 тыс. Записей, в API с использованием R

Я попробовал приведенные ниже коды, но не помог:

apiurl <- "https://api.thomsonreuters.com/permid/match/file"
Records <- "C:\\Users\\U6028364\\Downloads\\Organization_input_template_with_examples.csv
  resp <- POST(apiurl,body=list(

                    addressFile=upload_file(Records),
                    Content-Type="multipart",


      ))

stop_for_status(resp)
get_data <- content(resp,"text")

Спасибо, Гаутама

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Ниже я попытался сделать следующее, но выдает ошибку как: Ошибка в as.request (config): объект 'httr' не найден

httr::POST(
  url = api_url,
  httr:add_headers(
    X-AG-Access-Token : "abcd"

  ),
  body = list(
    file = httr::upload_file(records)
  ),
  encode = "multipart"
) -> resp
0 голосов
/ 12 декабря 2018

Попытка объяснить следующее с помощью абзаца в комментарии была бы болезненной, поэтому взгляните на:

api_url <- "https://api.thomsonreuters.com/permid/match/file"

records <- "C:\\Users\\U6028364\\Downloads\\Organization_input_template_with_examples.csv"

httr::POST(
  url = api_url,
  body = list(
    addressFile = httr::upload_file(records),
  ),
  encode = "multipart"
) -> resp

httr::stop_for_status(resp)

get_data <- content(resp, "text")

единственное реальное изменение заключается в том, что вам нужно использовать параметр encode (также, вы пропустили " в своем коде вопроса).

У меня нет доступа к TR API, поэтому я не могу проверить это.Однако https://docs -developers.thomsonreuters.com / 1544617757924/45690 / wwhelp / wwhimpl / js / html / wwhelp.htm # href = PermID% 20Service / PermID% 20APIs% 20User% 20Guide.1.20.html ** говорит, что это командная строка curl, чтобы делать то, что вы пытаетесь сделать:

curl -X POST https://api.thomsonreuters.com/permid/match/file 
     -H "Content-Type: multipart/form data" 
     -H "x-openmatch-numberOfMatchesPerRecord: 1" 
     -H "x-openmatch-datatype: Organization" 
     -H "X-AG-Access-Token: <token>" 
     -F file=@OrgRecords.csv

В этом случае вы упускаете некоторые вещи, а также используете неправильный body, так чтоможет работать лучше:

httr::POST(
  url = api_url,
  httr::add_headers(
    `X-AG-Access-Token` = "YOUR_ACCESS_TOKEN_WHICH_YOU_RLY_SHLDNT_PUT_DIRECTLY_IN_R_SCRIPTS"
  )
  body = list(
    file = httr::upload_file(records)
  ),
  encode = "multipart"
) -> resp

Понятия не имею, требуются ли другие заголовки "openmatch".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...