我正在向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
中做到这一点?
答案 0 :(得分:0)
比我想象的更容易修复:content(r, "text")