2015-02-15 6 views
1

Как проверить, действительно ли https-url?Проверьте, действителен ли протокол HTTPS (протокол передачи гипертекстовой защиты)

Использование:

RCurl::url.exists("https://github.com/") 

дает [1] FALSE.

Я предпочитаю базовый R для своих нужд, но не женат на нем. Плюс дополнительные ответы делают этот вопрос более обобщаемым.

+0

Этот код возвращает TRUE для меня. –

+0

Он возвращает TRUE также мне. RCURL_1.95-4.3, R 3.1.2, ubuntu 14.04 – BBrill

+0

См. Главу 8 этого [https://books.google.com/books?id=6k7IfACN_P8C&pg=PA437&lpg=PA437&dq=Validating+URLs+becomes+useful+only + когда + мы + знать + контекст + + в + который + те + адреса + есть + до + быть + действительной. & источника = бл & OTS = CpGc3Joo4H & сиг = _TJ-TBYy-lZ2egIYEoWQWkQc_2A & гектолитров = еп & са = X & е = dbDgVKmnOtH7gwSur4ToDA & вед = 0CB4Q6AEwAA # v = OnePage & д = Validating% 20URLs% 20статы% 20% 20%% 20%% 20%% 20%% 20%% 20%% 20контекст% 20in% 20which% 20% 20% 20% 20% 20%% 20е% 20valid. & F = false] (книга). Я думаю, что это также применимо к R. – Metrics

ответ

2

Вместо этого я бы использовал httr. Я не уверен, какой из них предпочтительнее между url_ok и url_success, но оба они работают на этом уровне.

library(httr) 
url_ok("http://github.com/") 
#[1] TRUE 
url_ok("https://github.com/") 
#[1] TRUE 
url_ok("https://github.com/nonworking") 
#[1] FALSE 
url_success("http://github.com/") 
#[1] TRUE 
url_success("https://github.com/") 
#[1] TRUE 
url_success("https://github.com/nonworking") 
#[1] FALSE 

По какой-то причине, RCurl не нравится GitHub даже в режиме HTTP. Я подозреваю, что это из-за перенаправления.

library(RCurl) 
url.exists("http://github.com/") 
#[1] FALSE 
url.exists("https://github.com/") 
#[1] FALSE 

Edit: Некоторые комментаторы они получают упоминалось ИСТИНА в ответ, но я также получаю FALSE с помощью RCurl. Я нахожусь в Windows.

+0

То же самое касается Windows, звучит как общий знаменатель –

+0

С этой позы, похоже, все изменилось. Сначала на забавную заметку «https://github.com/nonworking» теперь существует. Затем функции 'url_ok' и' url_success' устарели, и теперь мы должны использовать 'httr :: http_error' (' TRUE' при ошибке). И, наконец, «Rcurl» отлично работает на «адресах github». –

Смежные вопросы