Я пишу простую программу, которая должна изменить некоторые данные на польском аукционе.WWW :: Mechanize и "HTTP :: Содержимое сообщения должно быть байтами в ..."
Один из этапов включает загрузку страницы редактирования, изменение одного значения и ее отправку.
Образец страницы можно посмотреть здесь: http://depesz.com/various/new_item.php.html - это просто статическая копия такой страницы редактирования.
Соответствующая часть моего PERL код:
$agent->form_number(1);
$agent->submit();
$agent->form_number(1);
my $q = $agent->current_form()->find_input('scheme_id');
$agent->field('scheme_id', '1025');
# $agent->field('description', encode('utf-8', $agent->value("description")));
# $agent->field('location', encode('utf-8', $agent->value("location")));
# $agent->field('transport_shipment_description', encode('utf-8', $agent->value("transport_shipment_description")));
$agent->submit;
print $agent->response->decoded_content . "\n";
После первого отправить я получаю страницу я показал. Затем я меняю значение в поле schem_id на 1025 и отправлю форму.
Потом я получаю:
HTTP::Message content must be bytes at /usr/local/share/perl/5.8.8/HTTP/Request/Common.pm line 91
Я попытался перекодировать значения на текстовых полей на форме - отсюда agent-> поле (...) кодируют линии, но это не помогло.
На данный момент я понятия не имею, что на форме может сделать WWW :: Mechanize терпят неудачу таким образом, но я, очевидно, не могу исправить самостоятельно.
Есть ли способ отладить эту ситуацию? Или, может быть, я должен сделать что-то по-другому?
Примечание: Я не уверен, что это будет полностью решить эту проблему, но я не уверен, что еще нужно проверить. Я просто знаю, когда я сталкивался с этой ошибкой в прошлом, это была проблема с кодировкой. Надеюсь, поможет. – Frakkle
К сожалению, оба в курсе: => modver LWP Version 5,825 => modver WWW :: Механизируйте Версия 1,54 – 2009-04-03 21:10:48
Пытались ли вы обновление еще раз? WWW :: Mechanize 1.56 изменил способ обработки кодировок: «Некоторое время Mech использовал HTTP :: Response :: Encoding, чтобы попытаться вывести правильное кодирование получаемой страницы. Теперь он позволяет LWP :: UserAgent выполнить работу и больше не требуется HTTP :: Response :: Encoding. " – cjm