2017-01-04 20 views
0

Следующий запрос HTTP возвращает 400 ERR_INVALID_REQ -кальмаров - 400 по запросу POST

POST http://distservp1.pb.com/dstproduct.asp HTTP/1.1 
Proxy-Authorization: Basic Og== 
Host: distservp1.pb.com 
Connection: close 
Content-type: application/x-www-form-urlencoded 
Content-length: 638 

PBXML=%3CSignonReq%3E%0D%0A%0... 

Отклик (тело не содержит никакой дополнительной информации) -

HTTP/1.0 400 Bad Request 
Server: squid/2.7.STABLE8 
Date: Wed, 04 Jan 2017 09:07:16 GMT 
Content-Type: text/html 
Content-Length: 2054 
X-Squid-Error: ERR_INVALID_REQ 0 
X-Cache: MISS from [ProxyName].local 
X-Cache-Lookup: NONE from [ProxyName].local:8080 
Via: 1.0 [ProxyName].local:8080 (squid/2.7.STABLE8) 
Connection: close 

Глядя на пакет захватить тело запрос POST отправляется в двух PDU. 400 отправляется обратно до отправки второго PDU - так что я предполагаю, что ошибка лежит внутри заголовков. Squid cache.log просто показывает -

clientTryParseRequest: FD 20 (192.168.120.72:49503) Invalid Request 

Аналогичный запрос генерируется из плагина DHC в хроме преуспевает -

POST http://distservp1.pb.com/dstproduct.asp HTTP/1.1 
Host: distservp1.pb.com 
Proxy-Connection: keep-alive 
Content-Length: 638 
Origin: chrome-extension://aejoelaoggembcahagimdiliamlcdmfm 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36 
Content-Type: application/x-www-form-urlencoded 
Accept: */* 
Accept-Encoding: gzip, deflate 
Accept-Language: en-US,en;q=0.8 

Может кто-нибудь увидеть, что происходит здесь не так? И любые идеи о том, как это исправить? Мы не можем изменить приложение, которое отправляет запрос. Он отлично работает на устройстве, не проложенном через прокси.

ответ

0

Оказывается, приложение, о котором идет речь, добавляет пробел в конце строки запроса. Это заставляет Squid отвергать его.