内容类型图像

时间:2019-07-03 01:52:36

标签: r httr

我正在向this网站发出POST请求,并且期望得到XML对象作为回报。在R中使用httr包:

library("httr")
url <- "https://pathways.embl.de/mapping.cgi"
#body <- list(a = 1, b = 2, c = 3)
body <- list(selection = "R01324 W20 #ff0000", export_type="svg")

r <- POST(url, body = body, encode = "form", verbose())

这将返回status_code 200(成功),但是content(r)给出如下信息:

[1] 3c 3f 78 6d 6c 20 76 65 72 73 69 6f 6e 3d 27 31 2e 30 27 20 65 6e 63 6f 64 69 6e 67 3d 27 49
  [32] 53 4f 2d 38 38 35 39 2d 31 27 3f 3e 0a 3c 21 44 4f 43 54 59 50 45 20 73 76 67 20 50 55 42 4c
  [63] 49 43 20 22 2d 2f 2f 57 33 43 2f 2f 44 54 44 20 53 56 47 20 31 2e 30 2f 2f 45 4e 22 20 22 68
  [94] 74 74 70 3...

(输出被截断) 绝对不是xml。

检查r$headers$content-type将返回"image/svg+xml"

我可以在Python中做同样的事情:

import requests

url = 'https://pathways.embl.de/mapping.cgi'
body = {"selection":"R01324 W20 #ff0000", "export_type":"svg"}

r = requests.post(url, data=body)

with open('test.svg','w') as file:
    file.write(r.text)

这将成功在test.svg中写出我想要的xml输出。

我想知道如何在R中做到这一点?

1 个答案:

答案 0 :(得分:0)

比我想象的更容易修复:content(r, "text")