Отправить HTTP-запрос POST на сервер и получить ответ? - PullRequest
1 голос
/ 25 сентября 2011

Я пытаюсь отправить запрос HTTP POST на сервер Google и получить ответ. Я пытаюсь отправить тот же запрос, что и мой браузер. При поиске я проверял запрос и ответ от инструментов разработчика Chrome. В соответствии с этим, это моя просьба.

Request URL:http://www.google.com/hotelfinder/rpc
Request Method:POST
Status Code:200 OK    
request headers:
POST /hotelfinder/rpc HTTP/1.1
Host: www.google.com
Connection: keep-alive
Content-Length: 116
Origin: http://www.google.com
X-GWT-Module-Base: http://www.google.com/hotelfinder/static/
X-GWT-Permutation: A237247005BD7F571F547C07F4E1BA8D
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1
Content-Type: application/json; charset=UTF-8
Accept: */*
Referer: http://www.google.com/hotelfinder/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: rememberme=true; --my cookie--
payload:
[,[[,"hs","[,[,\"Las Vegas, NV\",\"2011-10-02\",1]\n]\n"]
]
,[,[[,"b_ca","101"]
,[,"b_qu","0"]
,[,"b_qc","1"]
]
]
]

Я использовал HTTP-клиент Apache для отправки запроса, но получаю только страницу с этой верхней панелью Google. Пожалуйста, помогите мне сделать это.

1 Ответ

2 голосов
/ 25 сентября 2011

Откройте страницу в обычном веб-браузере, щелкните правой кнопкой мыши и Просмотр источника .Это именно то, что HttpClient также получает.Вы видите эту кучу JavaScript?Отключите JavaScript в вашем браузере, обновите страницу.Теперь вы видите, что получаете тот же результат (только верхняя строка Google)?

Другими словами, требуется JavaScript.Вы должны анализировать, интерпретировать и выполнять JavaScript самостоятельно.HttpClient не делает этого, он просто дает вам то же самое, что и ваш веб-браузер, как вы можете видеть в Просмотр источника .Ваш код HttpClient работает отлично.Единственное отличие состоит в том, что ваш веб-браузер может анализировать, интерпретировать и выполнять JavaScript.

Тем не менее, мне интересно, понимаете ли вы, что на самом деле нарушаете их условия обслуживания таким образом.Предлагаю поискать публичный API для поиска отелей.Этот вопрос был задан ранее: API Travel / Hotel's?

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