Как я могу определить, перенаправляет ли URL?

Пожалуйста, внимательно прочитайте этот раздел документов: https://github.com/intuit/karate#contains-short-cuts

* def json = { id: 1, priority: 1, compRound: { id: 1, comp_id: 89 } }
* def compRound = { id: '#number' }
* match json == { id: '#number', priority: '#number', compRound: '#(^compRound)' }

.

11
задан brian d foy 30 October 2008 в 21:33
поделиться

5 ответов

В Perl:

use LWP::UserAgent;
my $ua = LWP::UserAgent->new;

my $request  = HTTP::Request->new( GET => 'http://google.com/' );
my $response = $ua->request($request);
if ( $response->is_success and $response->previous ) {
    print $request->url, ' redirected to ', $response->request->uri, "\n";
}
16
ответ дан 3 December 2019 в 02:12
поделиться

Ну, я ничего не знаю или о Perl или об отличный, таким образом, я дам Вам другой с точки зрения HTTP, и необходимо будет адаптироваться.

Обычно, Вы делаете Запрос HTTP, и Вы возвращаете некоторый текст HTML наряду с кодом ответа. Код ответа для Успеха 200. Любой код ответа в этих 300 диапазонах является некоторой формой перенаправления.

8
ответ дан 3 December 2019 в 02:12
поделиться

В Perl можно использовать LWP:: Useragent для этого. Я предполагаю, что самый легкий путь состоит в том, чтобы добавить a response_redirect использование обработчика add_handler.

2
ответ дан 3 December 2019 в 02:12
поделиться

Быстрый и грязный отличный сценарий для показа понятий - Примечание это использует java.net. HttpURLConnection

Для обнаружения перенаправления необходимо использовать setFollowRedirects(false). Иначе Вы заканчиваете на перенаправленной странице так или иначе с a responseCode из 200. Оборотная сторона - Вы, затем должны переместиться по перенаправлению сами.

URL url = new URL ('http://google.com')
HttpURLConnection conn = url.openConnection()
conn.followRedirects = false
conn.requestMethod = 'HEAD'
println conn.responseCode
// Not ideal - should check response code too
if (conn.headerFields.'Location') {
  println conn.headerFields.'Location'
}

301
["http://www.google.com/"]
3
ответ дан 3 December 2019 в 02:12
поделиться

Что касается ответа James - демонстрационный Сеанс HTTP:

$ telnet www.google.com 80
HEAD / HTTP/1.1
HOST: www.google.com


HTTP/1.1 302 Found
Location: http://www.google.it/
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Set-Cookie: ##############################
Date: Thu, 30 Oct 2008 20:03:36 GMT
Server: ####
Content-Length: 218

Используя ГОЛОВУ вместо ДОБИРАЮТСЯ, Вы получаете только заголовок. "302" означает временное перенаправление, "Местоположение": то, где Вы перенаправляетесь к.

4
ответ дан 3 December 2019 в 02:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: