2016-08-03 5 views
4

私のアプリケーションにしたいWinFormアプリケーションのデフォルトブラウザでURLを開きます。 そして、いくつかのデータをクエリ文字列ではなくHTTP POSTメソッドとして送信します。WinFormのブラウザで開いたURLにデフォルトのWindowsブラウザを開き、HTTPポストデータを送信する方法?

:私はこのコードを使用し

Process.Start("http://www.ketabchin.com/sort) 

しかし、このコマンドでは、私はその後、そのURL にPOSTデータを送信することはできません:私は、デフォルトのブラウザでURLを開きたい場合は 今問題がある私は このコードを使用しました

Public Shared Function PostMessageToURL(url As String) As String 
    Dim request As WebRequest = WebRequest.Create("https://www.ketabchin.com/windows-logged") 
    request.Method = "POST" 
    Dim postData As String = "u=" & FrmMain.Username & "&p=" & FrmMain.Password & "&url=" & url 
    Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData) 
    request.ContentType = "application/x-www-form-urlencoded" 
    request.ContentLength = byteArray.Length 
    Dim dataStream As Stream = request.GetRequestStream() 
    dataStream.Write(byteArray, 0, byteArray.Length) 
    dataStream.Close() 
    Dim response As WebResponse = request.GetResponse() 
    Console.WriteLine(CType(response, HttpWebResponse).StatusDescription) 
    dataStream = response.GetResponseStream() 
    Dim reader As New StreamReader(dataStream) 
    Dim responseFromServer As String = reader.ReadToEnd() 

    reader.Close() 
    dataStream.Close() 
    response.Close() 
    Return responseFromServer 
End Function 

この1つは、HTTP POSTリクエストデータをURLに送信しますが、デフォルトのウェブブラウザでその応答を開くことはできません。 どうすればいいですか? このアクションの背後にあるロジックは次のとおりです。私はWinFormアプリケーションを持っていて、自分のアプリケーションで「goto website」ボタンをクリックすると、私はブラウザを開いてログインページにロギングデータを送りたいので、ユーザはロギングモードでサイトにアクセスできます。

答えて

1

あなたの問題に解決策がまだ必要なのかどうか分かりませんが、同様の問題の代わりにコードを使用します。私は同じリクエストを持っていますが、WebフォームにログインするためにAppFormボタンをクリックする必要がありますが、VBアプリケーションからナビゲータに投稿データを送信する方法が見つかりませんでした(IE /私のユーザーはIE/FF/Chromeを使用できます)。だからここに私は解決策を見つけるために作られた手順は次のとおりです。

  1. ユーザーがpostDataのような(ウェブサイトがユーザーを識別するために必要なすべてのデータが含まれてい
  2. あなたのコードを使用している接続するためにクリックする必要がありますボタンユーザー名とパスワード)+ IPアドレス
  3. ウェブサイトは、これらのデータをチェックし、すべてが大丈夫であれば、それはユニークな32ビットの鍵を生成し、Webサイトには、JSONレスポンス{"status" => "ok", "token" => $key, "ip" => $ipFromPostRequest}
  4. VBアプリを送ってデータベース
  5. に保管しています今、あなたはプログラマーを開いています(あなたはデフォルトのブラウザでリンクを開くにはいくつかのコードを見つけて、データベース内http://www.website.com/auto-login/32-BITS-GENERATED-KEY
  6. WebサイトのチェックのようなリンクをIEやFF)を定義されていない場合はキーとIPは
  7. Webサイトがセッションを作成し対応する場合や家庭にユーザーをリダイレクトすることができます削除キーをデータベースから

私はそれがセキュリティ上の理由から最適な解決策ではないと思うが、これは私の側では一意のコンピュータ名と内部IPアドレスを持つ包括的なネットワークであり、この手順が動作している。

関連する問題