使用 R 中的 httr 发布到 API 并从 API 接收数据



我正在尝试访问美国人口普查地理编码器批处理地址API,可在此处找到:http://geocoding.geo.census.gov/geocoder/

我还在这里浏览了 API 的文档:http://geocoding.geo.census.gov/geocoder/Geocoding_Services_API.pdf

我正在尝试使用 R 中的 httr 包使用以下格式发布格式化地址的批处理 csv 文件:唯一 ID、街道地址、城市、州、邮编我已经尝试了使用 RCurl 的 getURL 的单地址请求版本,并且工作正常,但 postForm 似乎没有以正确的方式提交文件。我现在使用的代码似乎可以正确发布请求,但我没有返回任何地理编码数据。

curlhandle <- handle("http://geocoding.geo.census.gov/geocoder/geographies/addressbatch", 
  cookies = TRUE)
# using fileUpload from RCurl instead of upload_file from httr
upload3  <- fileUpload(contents = address100, contentType = "file")
test <- POST(url="http://geocoding.geo.census.gov/geocoder/geographies/addressbatch", 
  body = list(addressFile = upload3,
         benchmark = "Public_AR_Census2010",
         vintage="Census2010_Census2010"), 
  encode = "multipart",
  handle = curlhandle, 
  followLocation = TRUE,
  verbose = TRUE)

我的请求是否缺少某些内容?我不确定在这种情况下我是否应该使用 writefunction 和 writedata。任何帮助将不胜感激!

你似乎有一个奇怪的RCurl和httr的混合。以下是我编写请求的方式:

req <- POST(
  "http://geocoding.geo.census.gov/geocoder/geographies/addressbatch", 
  body = list(
    addressFile = upload_file(address100),
    benchmark = "Public_AR_Census2010",
    vintage = "Census2010_Census2010"
  ), 
  encode = "multipart",
  verbose())
stop_for_status(req)
content(req)

("文件"也不是有效的 MIME 类型)

相关内容

最新更新