2014-10-08 92 views
2

我试图从R使用RCurl访问Web服务。该Web服务使用Kerberos身份验证。R协商认证(使用RCurl或Httr)

在命令行上使用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选项设置为gssnegotiate,但失败也。

+0

使用'verbose'选项(您使用的)的输出产生了什么? – hrbrmstr 2014-10-08 11:41:24

+0

控制台上会发生什么?它如何获得您的用户名和密码? – hadley 2014-10-08 17:23:18

回答

0

我还没有找到如何与RCurl做,但与httr你可以使用

GET("https://host.domain/",authenticate("username","password","gssnegotiate")) 

如果您使用的是自签名证书,你can run the command

set_config(config(ssl.verifypeer = 0L)) 

要禁用证书验证对于底层libcurl库

1

使用RCurl,对于NEGOTIATE,请使用:

getURL("https://yourAddress", userpwd=":", httpauth = 4) 

数字4 ist基于在curl.h中定义的常数的位掩码。有效选项定义为here