C #: Öffnen Sie einen Browser und POST zu einer URL von einer Windows-Desktop-App

8

Ich habe eine kleine WPF-App (obwohl ich denke, es spielt keine Rolle, ob es sich um ein WPF-Formular oder eine Webformular-App handelt), dass ich ein neues Browserfenster und POST zu einer bestimmten URL starten möchte. Ich habe herumgemacht mit:

%Vor%

um das Fenster zu starten, aber ich glaube nicht, dass ich den gleichen Prozess verwenden kann, um tatsächlich zu einer URL zu posten ... Ich habe auch mit HttpWebRequest experimentiert, aber ich möchte, dass der Benutzer die App nach mir benutzen kann habe auf diese URL gepostet, zeige ihnen nicht nur die Ergebnisse ... Was kann ich mir anschauen, um sowas zu machen?

    
onekidney 14.12.2009, 20:55
quelle

4 Antworten

3

Es gibt mehrere Lösungen, die nicht sicher sind, welcher der beste für Sie ist ...

  1. Fahren Sie mit Ihrem ursprünglichen Ansatz fort
  2. Betten Sie die Webbrowser-Steuerung in Ihre Anwendung ein, wie in anderen Antworten vorgeschlagen
  3. Mach alles programmatisch "hinter der Bühne"

Für # 3 können Sie hier nachsehen: Ссылка

Wenn Sie mit # 1 fortfahren möchten, ist es schwieriger, da Sie die externe Anwendung kontrollieren müssen und verschiedene Browser sich anders verhalten würden.

Ich habe das "javascript:" - Protokoll und den unten stehenden Code mit IE als Standardbrowser verwendet, wenn es um eine "benutzerunfreundliche" Anwendung geht. Bitte beachten Sie, dass es sich nicht um einen produktionsfertigen Code handelt. Es gibt keine Fehlerbehandlung, der Benutzer kann den Fokus vom gestarteten Browser weg verschieben oder den Browser ohne "javascript:" Protokollunterstützung usw. verwenden.

%Vor%
  • URL1: Ссылка
  • URL2: javascript: Funktion x () {document.all.q.value = 'stackoverflow'; document.forms [0] .submit ();} x ();
DK. 14.12.2009, 23:29
quelle
10

Es gibt keinen direkten Weg dazu. Was Sie tun könnten, ist eine HTML-Seite mit einem Formular mit den Daten zu füllen, die Sie posten müssen, und ein bisschen Javascript, um die Seite automatisch zu veröffentlichen, wenn es geladen wird. Dann müssen Sie nur diese Seite im Browser öffnen ...

Das generierte HTML könnte so aussehen:

%Vor%

Wenn die Seite in Ihrer Anwendung angezeigt werden muss, laden Sie sie in ein WebBrowser -Steuerelement

    
Thomas Levesque 14.12.2009 20:59
quelle
5

Verwenden Sie stattdessen die WebBrowser-Klasse .

    
John Saunders 14.12.2009 20:59
quelle
3

Sie können ein verborgenes WebBrowser Steuerelement erstellen und ausführen Navigate() (mit der Überladung, mit der Sie die Anfrage-Methode angeben können). Sie müssen einen "_blank" -Zielrahmen angeben, damit die Navigation in einem neuen Browserfenster erfolgt.

    
Franci Penov 14.12.2009 21:04
quelle

Tags und Links