●やりたい事ですが、C#で作成されたWindowsで動作するUI画面でボタンを押下すると、①ブラウザが自動で起動(規定のブラウザでOK)して、②指定されたURL(aspで作成されたページです)に対して③データをPOSTして、webサーバー側で受けたPOSTデータを解析して結果を起動したブラウザに表示する、です。
●実は現在、上記の動作は実際にシステムとして実現しており、Internet Exploer上で正常に動作しています。実現方法はInternetExplorerMediumを使用して、URLの指定とPOSTデータをNavigateメソッドに渡して上記の事が実現しています。
しかしこの度、IEのサポート終了に伴いEdgeで動作するよう改修が必要となりましたが、InternetExplorerMediumは当然使えなくなりますので規定のブラウザにEdgeを指定して(システム要件としてOKが出ています)そこに従来のIEで行っていた事をやる、となりました。
また、EdgeDriverというEdgeに特化したクライアント側のEdge操作ライブラリがMicrosoftより提供されていますが、各端末への配布の問題があり基本的にこれは使用しない前提での実装となります。
●こちらのサイトの例を参考に実装して実行し、指定したURLへPOSTしてレスポンスの中に期待した値が返却される事までは確認できましたが、当然ながらブラウザは起動せずにプロトコルとしてのPOST~RESPONSEのみの動作にとどまっています。
dobon.net POSTでデータを送信する
https://dobon.net/vb/dotnet/internet/webrequestpost.html
●InternetExplorerMediumを使用すれば都合よくブラウザ起動+URL指定+POSTデータの送出までが一気にできますが、これに代わって同じ事を実現する方法を知りたく。
ブラウザを自動起動させるためにはURLを指定してSystem.Diagnostics.Process.Start()とすれば規定のブラウザは立ち上がりますが、同時にPOSTする仕組みは当然なく、URLにクエリストリングでパラメータを付与するしか方法がありません。
今回URLとして指定されているaspで作成されたページはGETではなくPOSTでパラメータを要求しているため、クエリストリング方式では動作しないのです。よって、ブラウザ起動+URL指定+POSTを一回で完結させる方法があればお教えください。
※Javascriptなどでwebページ側にスクリプトを仕込んでGETしたパラメータを自力でPOSTする方法もありますが、今回はwebページ側は手を入れない前提でお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/04/21 09:20
2022/04/25 05:53
2022/04/25 07:05