post 使用 httr 请求
post request with httr
我是 httr
的新手。我正在尝试使用此地理编码 api: https://geo.api.gouv.fr/adresse。我想直接从 R 传递一个 csv 文件,如他们的示例所示:
curl -X POST -F data=@search.csv -F columns=adresse -F columns=postcode https://api-adresse.data.gouv.fr/search/csv
示例 csv 在这里:https://adresse.data.gouv.fr/exemples/search.csv
我试过了,没有指定列:
library(httr)
test <- POST("https://api-adresse.data.gouv.fr/search/csv/",
body = "data = @search.csv")
> test
Response [https://api-adresse.data.gouv.fr/search/csv/]
Date: 2021-02-09 21:27
Status: 400
Content-Type: application/json; charset=utf-8
Size: 66 B
或
test <- POST("https://api-adresse.data.gouv.fr/search/csv/",
body = "data = @search.csv",
content_type("application/json"))
但我仍然获得 400 状态。指定整个文件路径也不起作用。这是如何运作的 ?我想得到 json,并在 R 中阅读
提前致谢!
我不确定您是否可以请求取回 json,但您可以通过以下方式使用 httr
:
library(httr)
r <- POST(url = "https://api-adresse.data.gouv.fr/search/csv",
body = list(data = upload_file("search.csv"),
columns = "adresse",
columns = "postcode"))
content(r)
# # A tibble: 4 x 20
# nom adresse postcode city latitude longitude result_label result_score result_type result_id
# <chr> <chr> <dbl> <chr> <dbl> <dbl> <chr> <dbl> <chr> <chr>
# 1 Écol~ 6 Rue ~ 54600 Vill~ 48.7 6.15 6 Rue Alber~ 0.96 housenumber 54578_00~
# 2 Écol~ 6 Rue ~ 54500 Vand~ 48.7 6.15 6 Rue d’Aqu~ 0.96 housenumber 54547_00~
# 3 Écol~ 31 Rue~ 54180 Heil~ 48.6 6.21 31 Rue d’Ar~ 0.96 housenumber 54257_00~
# 4 Écol~ 1 bis ~ 54250 Cham~ 48.7 6.16 1 bis Rue d~ 0.95 housenumber 54115_01~
# # ... with 10 more variables: result_housenumber <chr>, result_name <chr>, result_street <lgl>,
# # result_postcode <dbl>, result_city <chr>, result_context <chr>, result_citycode <dbl>,
# # result_oldcitycode <lgl>, result_oldcity <lgl>, result_district <lgl>
我是 httr
的新手。我正在尝试使用此地理编码 api: https://geo.api.gouv.fr/adresse。我想直接从 R 传递一个 csv 文件,如他们的示例所示:
curl -X POST -F data=@search.csv -F columns=adresse -F columns=postcode https://api-adresse.data.gouv.fr/search/csv
示例 csv 在这里:https://adresse.data.gouv.fr/exemples/search.csv
我试过了,没有指定列:
library(httr)
test <- POST("https://api-adresse.data.gouv.fr/search/csv/",
body = "data = @search.csv")
> test
Response [https://api-adresse.data.gouv.fr/search/csv/]
Date: 2021-02-09 21:27
Status: 400
Content-Type: application/json; charset=utf-8
Size: 66 B
或
test <- POST("https://api-adresse.data.gouv.fr/search/csv/",
body = "data = @search.csv",
content_type("application/json"))
但我仍然获得 400 状态。指定整个文件路径也不起作用。这是如何运作的 ?我想得到 json,并在 R 中阅读 提前致谢!
我不确定您是否可以请求取回 json,但您可以通过以下方式使用 httr
:
library(httr)
r <- POST(url = "https://api-adresse.data.gouv.fr/search/csv",
body = list(data = upload_file("search.csv"),
columns = "adresse",
columns = "postcode"))
content(r)
# # A tibble: 4 x 20
# nom adresse postcode city latitude longitude result_label result_score result_type result_id
# <chr> <chr> <dbl> <chr> <dbl> <dbl> <chr> <dbl> <chr> <chr>
# 1 Écol~ 6 Rue ~ 54600 Vill~ 48.7 6.15 6 Rue Alber~ 0.96 housenumber 54578_00~
# 2 Écol~ 6 Rue ~ 54500 Vand~ 48.7 6.15 6 Rue d’Aqu~ 0.96 housenumber 54547_00~
# 3 Écol~ 31 Rue~ 54180 Heil~ 48.6 6.21 31 Rue d’Ar~ 0.96 housenumber 54257_00~
# 4 Écol~ 1 bis ~ 54250 Cham~ 48.7 6.16 1 bis Rue d~ 0.95 housenumber 54115_01~
# # ... with 10 more variables: result_housenumber <chr>, result_name <chr>, result_street <lgl>,
# # result_postcode <dbl>, result_city <chr>, result_context <chr>, result_citycode <dbl>,
# # result_oldcitycode <lgl>, result_oldcity <lgl>, result_district <lgl>