私は、自分の仕事の調査部分を簡素化するために、簡単なフォームでPHPサイトの軽量スクリーンスクレイピングを試みています。このページには3つのフィールドと送信ボタンがある単純なフォームがあります。C#HTTPClientフォーム投稿と送信問題
私のコードを実行すると、元のページは返されなかったかのように返されます。私はまた、フィールドに?name = etc ...を貼り付けようとしましたが、php urlの後にも、私が送信ボタンを押していないかのように元のページに戻ります。
private async void postRequest(string url)
{
using (HttpClient client = new HttpClient())
{
var values = new List<KeyValuePair<string, string>>();
values.Add(new KeyValuePair<string, string>("case_type", "55"));
values.Add(new KeyValuePair<string, string>("petname", "singh"));
values.Add(new KeyValuePair<string, string>("year", "2016"));
values.Add(new KeyValuePair<string, string>("button", "Submit"));
var content = new FormUrlEncodedContent(values);
var response = await client.PostAsync(url, content);
var responseString = await response.Content.ReadAsStringAsync();
using (StreamWriter post = new StreamWriter("post_website.txt"))
{
post.WriteLine(responseString);
}
}
}
Chrome Dev Tools screenshot after submit:
は、ここに私の現在のコードです。私はURLの一部を編集しました、それは公開情報サイトですが、ちょうど場合には安全です。
私は基本的に自分自身にC#を教えて以来、私は何か間違っていると思っています。これはC#に関連する何かのWebをやろうとしています。
StackOverflowでも同様の問題が発生しました: Fill Form C# & Post Errorですが、このコードも機能しませんでした。クッキーが必要とは思われません。私はさまざまな他のStackOverflowの答えを試みたが、HttpClientとWebClientのPOSTリクエストをサーバに使用することに関しては何もしていない。
アドバイスや洞察力を事前に感謝します。
正しいURL(フォームのターゲットURLで、ページ自体のURLではない)を使用していますか? –
ああ、私はそれを考えなかった。開発ツールを見てみたら、フォームの動作が私のページとは異なることがわかります。私はそれを試み、報告する。 –
ありがとうございました!それは問題なく動いた。私の限られた経験で私はそれを確認するとは思っていないだろうが、それは今とてもシンプルで明白だ。とても有難い。 –