Пожалуйста, внимательно прочитайте этот раздел документов: 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)' }
.
В 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";
}
Ну, я ничего не знаю или о Perl или об отличный, таким образом, я дам Вам другой с точки зрения HTTP, и необходимо будет адаптироваться.
Обычно, Вы делаете Запрос HTTP, и Вы возвращаете некоторый текст HTML наряду с кодом ответа. Код ответа для Успеха 200. Любой код ответа в этих 300 диапазонах является некоторой формой перенаправления.
В Perl можно использовать LWP:: Useragent для этого. Я предполагаю, что самый легкий путь состоит в том, чтобы добавить a response_redirect
использование обработчика add_handler
.
Быстрый и грязный отличный сценарий для показа понятий - Примечание это использует 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/"]
Что касается ответа 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" означает временное перенаправление, "Местоположение": то, где Вы перенаправляетесь к.