我正在尝试使用RCurl从R访问Web服务。 Web服务使用Kerberos身份验证。
在命令行上使用curl进行测试可以正常工作,例如
curl --negotiate -u: http://reuxeuls199:8084/reports-ws/api/r/1.0/vesselTracking?region-name=ECC&start-date-time=01/10/2014
然而在R中我无法使其发挥作用。
ReportsProdURL <- "http://reuxeuls199:8084/reports-ws/api/r/1.0/vesselTracking?region- name=ECC&start-date-time=01/10/2014"
URL <- getURL(ReportsProdURL, verbose=TRUE, .opts=curlOptions(username=":"))
我也尝试使用设置为httpauth
的{{1}}选项,但也失败了。
答案 0 :(得分:1)
使用RCurl,对于NEGOTIATE,请使用:
getURL("https://yourAddress", userpwd=":", httpauth = 4)
答案 1 :(得分:0)
我还没有找到如何使用RCurl,但使用httr可以使用
GET("https://host.domain/",authenticate("username","password","gssnegotiate"))
如果您使用的是自签名证书can run the command
set_config( config( ssl.verifypeer = 0L ) )
禁用基础libcurl库的证书验证
答案 2 :(得分:0)
使用httr,
httr::GET(ReportsProdURL,
authenticate(":", "", type="gssnegotiate"))
如果内部网站不需要代理,那么
httr::GET(ReportsProdURL,
use_proxy(""),
authenticate(":", "", type="gssnegotiate"))