Завершение запроса формы POST со скрытыми значениями ввода - PullRequest
1 голос
/ 02 февраля 2011

Я пытаюсь использовать curl для автоматизации запроса кодов занятий с веб-страницы Австралийского бюро статистики. Я получаю сообщение об ошибке «Поисковый индекс не существует» при выполнении запроса POST с помощью Curl. Я думаю, что проблема в том, что есть два ввода, которые я не ввожу, и поэтому он терпит неудачу. Буду признателен за любую помощь в этом:

Запрос локона:

curl --data "searchcontent=&helpdocid=[docid]&searchtext=121315&submit=Go" http://www.ausstats.abs.gov.au/ausstats/searchclass.nsf/(Searchattmnt)?openagent

Соответствующий код с сайта АБС:

<!-- Start Search Content -->
<div id="titlemain"> Search Results</div><div id="middle"></div>
<form name="attmnt" method="post" action="http://www.ausstats.abs.gov.au/ausstats/searchclass.NSF/(Searchattmnt)?openagent"> 
<input type="hidden" name="searchcontent" value="">
<input type="hidden" name="helpdocid" value="[docid]">
<div id="content">
<h3>New Search :</h3>
<input type="text" name="searchtext" size =60 MAXLENGTH="255" value="">   
<INPUT VALUE="Go" TYPE="submit">
</form>
</div>
<!-- End Search Content --> 

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

EDIT: просто исправили опечатку в запросе curl, чтобы избежать путаницы.

Ответы [ 3 ]

1 голос
/ 09 марта 2011

Я воспользовался предложением @Justin Morgan и запустил wireshark, пока выполнял запрос. Это дало мне те ценности, которые мне требовались. В конце концов, это был использованный мной запрос curl:

curl \
-d "searchcontent=1220.0Data%2BCubes-SuperTable25.06.091" \
-d "helpdocid=17441354B1295875CA2571E6000AE9A0" \
-d "searchtext=121318" \
http://www.ausstats.abs.gov.au/ausstats/searchclass.NSF/(Searchattmnt)?openagent
1 голос
/ 03 февраля 2011

Проблема в том, что параметр --data в curl отправляет текст в точности так, как вы его предоставляете, но вы не используете зарезервированные символы в кодировке url (в частности, символы [ и ]), поэтому сервер не будет может правильно сопоставить значение поля helpdocid.

В примечании не включайте поле "submit = Go" в свои опубликованные данные. Отправляются только поля с именами и значениями.

Попробуйте это:

curl --data "searchcontent=&helpdocid=%5Bdocid%5D&searchtext=121315" http://www.ausstats.abs.gov.au/ausstats/searchclass.nsf/(Searchattmnt)?openagent
0 голосов
/ 24 июля 2013

Плагин Mozilla livehttpheader показывает строку текста в кодировке урлен, использованную для отправки на сервер.

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