我必须调用API并使用参数
c <- as.character("hello & salut")
api_request <- paste("http://api.com/?",
"parameter_1=",a,
"¶meter_2=",b,
"¶meter_3=",c
,sep="")
api_request <-URLencode(api_request, repeated = TRUE)
以下是网址:
print(api_request)
[1] "http://api.com/?parameter_1=48456¶meter_2=8975464¶meter_3=hello%20&%20salut"
正如你所看到的,“&amp;”参数_3中的符号仍然存在且未编码。
如何指定“&amp;”我的字符串中的符号(c)不是我请求的参数?
感谢您的帮助
答案 0 :(得分:2)
您需要对构成API调用URL的字符进行编码。一种选择是使用URLencode
包中的utils
:
a <- "48456"
b <- "8975464"
c <- as.character("hello & salut")
api_request <- paste("http://api.com/?",
"parameter_1=",a,
"¶meter_2=",b,
"¶meter_3=",c
,sep="")
url <- URLencode(api_request, reserved=TRUE)
url
[1] "http%3A%2F%2Fapi.com%2F%3Fparameter_1%3D48456%26parameter_2%3D8975464%26parameter_3%3Dhello%20%26%20salut"
请注意documentation我们需要在此设置reserved
为true,因为URLencode
的默认行为适用于文件网址,其中&
不需要被逃脱。