Использую PHP5
Отправляю запрос Selenium`у:
$request = "cmd=getNewBrowserSession&1=*firefox&2=http://www.r0.ru";
socket_write($socket, $request, strlen($request));
Selenium в логах пишет BadRequest вот так:
18:55:12.558 DEBUG [12] org.openqa.jetty.http.HttpConnection - java.io.IOException: Bad Request: CMD=GETNEWBROWSERSESSION&1=*FIREFOX&2=HTTP://WWW.R0.RU
Клиент отправляет запрос такой какой есть. Думаю дело не в клиенте а в сервере.
Почему и где символы превращаются в верхний регистр и как это излечить?
Спасибо! ))))
Selenium Bad Request: команда с символами в верхнем регистре
Автор vycm3e, 22 июн 2011 14:10
Сообщений в теме: 2
#1
Отправлено 22 июня 2011 - 14:10
#2
Отправлено 23 июня 2011 - 09:50
Привет.
Спецификация протокола http://wiki.openqa.o...Driver Protocol
Из нее можно понять что Selenium server поддерживает HTTP GET запросы (и может поддерживать POST запросы).
Из описания HTTP протокола (например отсюда http://en.wikipedia....ansfer_Protocol) можно увидеть пример запроса:
а ты просто посылаешь:
Чтобы заработало, нужно либо полностью составлять запрос по спецификации, к примеру:
или же можно сразу посылать HTTP запросы или (самое лучшее решение, если ты не пишешь собственный клиент) пользоваться готовой реализацией.
Почитай что-нибудь типа http://javascript.ru...zirovannyy-test
Удачи.
Спецификация протокола http://wiki.openqa.o...Driver Protocol
Из нее можно понять что Selenium server поддерживает HTTP GET запросы (и может поддерживать POST запросы).
Из описания HTTP протокола (например отсюда http://en.wikipedia....ansfer_Protocol) можно увидеть пример запроса:
GET /index.html HTTP/1.1
Host: www.example.com
а ты просто посылаешь:
Логично, что сервер такое не поддерживает.cmd=getNewBrowserSession&1=*firefox&2=http://www.r0.ru
Чтобы заработало, нужно либо полностью составлять запрос по спецификации, к примеру:
(Код наверняка нерабочий, он просто объясняет идею)socket_connect($socket, $hostname, $port);
$request = "GET /xxx/yyy?cmd=getNewBrowserSession&1=*firefox&2=".urlencode(http://www.r0.ru")." HTTP/1.1";
$request .= "\n"."Host: $hostname\n\n"
socket_write($socket, $request, strlen($request));
или же можно сразу посылать HTTP запросы или (самое лучшее решение, если ты не пишешь собственный клиент) пользоваться готовой реализацией.
Почитай что-нибудь типа http://javascript.ru...zirovannyy-test
Удачи.
#3
Отправлено 27 июня 2011 - 15:49
Спасибо, за совет. Уже справился. Curl в помощь... )))
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных