-2

を使用してフォームを送信しようとしています

my $fields = {
'f1' => 'type_contract',
'f2' => '0',
 .
 .
 .
};
$mech->submit_form(with_fields => $fields);

問題は、フォームの一部のフィールドに重複した名前がないことです。「name」の代わりに「id」を使用してフォームフィールドにデータを設定するにはどうすればよいですか?

ありがとうございました。

4

1 に答える 1

-1

最初にヘッダーを適切に形成することで解決しました。HTTP::ヘッダーを読んでください

my $cont_h = HTTP::Headers->new(
'Host'  => 'http:// [the url]',
'User-Agent' =>     'Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130307 Firefox/17.0',
'Accept' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
.
.
.
.
);

私がした間違いは、Post データをハッシュとして渡すことでした。投稿データは、この場合のコンテンツでもあるバイト文字列です。

my $cont_post_data = 'chargingContractHistoryCsvDto.searchType=type_contract& chargingContractHistoryCsvDto.searchItem=0&chargingContractHistoryCsvDto.searchDateFrom='.$start_t.'&chargingContractHistoryCsvDto.searchDateTo='.$end_t.'&';

HTTP リクエストを作成しました。HTTP::Requestを読んでください

my $cont_req = HTTP::Request->new( 'POST', $URI, $cont_h, $cont_post_data);

そして、perl mechanize を使用してリクエストを送信しました。

my $cont_response = $mech->request($cont_req);
于 2013-10-24T04:29:02.183 に答える