2014-10-08 85 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