В имени метода найден недопустимый символ.Имена методов HTTP должны быть токенами, сохраняются даже при запросе http - PullRequest
0 голосов
/ 13 декабря 2018

Я пытаюсь разогреть мой контроллер, чтобы при каждом развертывании служба перегревалась.

Для этого я написал скрипт на Perl, как показано ниже:

#!perl
use strict;
use warnings;
use WWW::Mechanize;
use HTTP::Request;


my $ua = WWW::Mechanize->new();
my $r  = HTTP::Request->new(
    'GET' =>
'http://gaurav_setia.microsoft.com:8080/b2h/homepage?_encoding=UTF8&opf_redir=1&portalDebug=1',
    [
        'Connection' => 'Keep-Alive',
        'Via'        => 'HTTP/1.1 ShoppingSchedule',
        'Accept' =>
'text/x-html-parts,text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
        'Accept-Charset'  => 'UTF-8',
        'Accept-Encoding' => 'identity',
        'Accept-Language' => 'en-US',
        'Host'            => 'gaurav_setia.microsoft.com',
        'User-Agent' =>
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36',
        'Cookie' =>
        'Original-X-Forwarded-For'   => '10.45.103.166',
        'X-MS-Internal-Ip-Class' => 'rfc1918',
        'X-MS-Internal-Via' =>
          '1.1 us-beta-opf-1a-1-67440dc2.us-east-1.ms.com (OPF)',
        'X-MS-Urlspace'                => 'NoPageType',
        'X-MS-Portal-Customer-Id'         => 'AMY4OD2PMM9T31',
        'X-MS-Portal-Default-Merchant-Id' => 'BTLPDKIKX0DE41',
        'X-MS-Portal-Device-Attr'         => 'desktop',
        'X-MS-Portal-Language'            => 'en_US',
        'X-MS-Portal-Marketplace-Id'      => 'ATVPDKIKX0DER',
        'X-MS-Portal-Page-Type'           => 'AQGate',
        'X-MS-Portal-Request-Attr'        => 'internal, http, portal-debug',
        'X-MS-Portal-Session-Id'          => '1M0-493PO66-0596753',
        'X-MS-Portal-Ubid'                => '1P2-465OP632-8831161',
        'X-MS-Portal-User-Attr'           => 'business',
        'X-MS-Rid'        => 'G308MPK95BWTA69EY2MW',
        'X-Forwarded-For'  => '10.45.101.126',
        'X-Forwarded-Host' => 'development.ms.com',
        'X-Forwarded-Server' =>
'development.ms.com, b-hp-shpomnpng-na-2b-02af3555.us-west-2.amazon.com',
        'X-Original-Args'   => 'portalDebug=1',
        'X-Original-Method' => 'GET',
        'X-Original-Scheme' => 'http',
        'X-Original-Uri'    => '/',
    ],

);
my $res = $ua->request( $r, );

if ( $res->is_success() )
{
    print $response->is_success();
}

print $response->status_line;

Этот скрипт должен запускаться после каждого развертывания.

Но в журналах catalina.out я получаю следующую ошибку:

 Dec 13, 2018 9:08:11 AM org.apache.coyote.http11.AbstractHttp11Processor process
  INFO: Error parsing HTTP request header
   Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
  java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens
          at org.apache.coyote.http11.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:235)
          at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1055)
          at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:684)
          at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1539)
          at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1495)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
          at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
          at java.lang.Thread.run(Thread.java:748)

Я не могу найти исправление!

Многие ответы говорят, что это связано с проблемой https / http, но я делаю здесь http-вызовсам по себе!

1 Ответ

0 голосов
/ 13 декабря 2018

В вашей куче заголовков есть следующее:

'User-Agent' =>
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.80 Safari/537.36',
'Cookie' =>
'Original-X-Forwarded-For'   => '10.45.103.166',

Обратите внимание, что для заголовка Cookie нет значения.Это означает, что все заголовки после этого будут неправильными (имена и значения будут запутаны).

Либо полностью удалите строку Cookie, либо установите ее значение на undef.

'Cookie' => undef,

(удаление, вероятно, лучше)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...