0

クエリ文字列を必要とするスクリプトに POST しようとすると問題が発生します。以下のコードを使用していますが、クエリ文字列なしでページをリクエストしたり、クエリ変数を "" に設定した場合と同じエラー応答が返されます。

たとえばhttp://example.com/login?validate、ブラウザでは機能しますが、http://example.com/login?validate=""機能しません (ページにエラーが表示されます)

私のコード:

$client = new Client();
$crawler = $client->request("POST","https://www.example.com/cgi-bin/login?validate", array(
    'USERNAME' => 'TEST',
    'PASSWORD' => 'TEST'
));
4

1 に答える 1

0

通常、次のようなルートを使用します。

$client->request('POST', '/login', array(
    'USERNAME' => 'TEST',
    'PASSWORD' => 'TEST'
    )
);

?validateあなたの特定のケースでは、フォームを送信したときにトリガーされる必要があるため、追加する必要はないと思います。

$client->request('POST', 'https://www.example.com/cgi-bin/login', array(
    'USERNAME' => 'TEST',
    'PASSWORD' => 'TEST'
    )
);

また、フィールドがUSERNAMEではなくusernameであることを確認してください。大文字と小文字が区別されます。

于 2013-02-06T08:13:13.200 に答える