Как разрешить неверный запрос HTTP / 1.1 400 - PullRequest
0 голосов
/ 09 октября 2011

All

Я захожу на веб-страницу через командную строку, используя simple_html_dom в php как

  $page = file_get_html($url, false, $context); 

где $ url - это веб-URL. Если ваш URL похож на http://abc.com/xyz.html?s="sometext" Тогда я получаю правильный ответ. Но я получаю HTTP / 1.1 400 Bad Request, если URL имеет пробел в параметре get, например http://abc.com/xyz.html?s="some text ".

Может кто-нибудь, пожалуйста, помогите мне, как решить эту проблему.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 09 октября 2011

Вам необходимо закодировать параметр:

$text = urlencode('some text');
$url = "http://abc.com/xyz.html?s=$text";
$page = file_get_html($url, false, $context); 
0 голосов
/ 09 октября 2011

Если вы генерируете этот URL самостоятельно, вам придется url_encode значений запроса:

$url = 'http://example.com/xyz.html?s=' . urlencode('some text');

, что даст вам

http://example.com/xyz.html?s=some+text
                                  ^---spaces must be + in urls.
...