C# Async-Webrequest
Muss ich anrufen eine url wie die folgende, die programmatisch mit C#:
http://mysite.com/AdjustSound.php
Diese php-Datei erwartet eine SoundLevel
von mir. Also, ein Beispiel-Aufruf wäre etwas wie:
http://mysite.com/AdjustSound.php?SoundLevel=30
Ich habe 2 Fragen:
1:
WebRequest request =
WebRequest.Create("http://mysite.com/AdjustSound.php?SoundLevel=30");
//Which one?
//request.Method = "GET";
//request.Method = "POST";
Frage 1: brauche ich, um eine GET
oder POST
Anfrage?
2:
Da, ich mache das http-Aufruf sehr Häufig (10-20 mal in einer sec); ich habe einige speed Probleme. Also, ich will nicht, dass mein Programm zu warten, bis dieser http-Aufruf beendet und ruft das Ergebnis. Ich will, dass Webrequest
asynchron laufen soll.
Das andere Problem ist, dass ich brauche nicht zu sehen, die Ergebnisse dieser http-Aufruf. Ich möchte nur zum aufrufen der server-Seite. Und auch ich kümmern sich nicht, wenn dieser Aufruf erfolgreich beendet wird oder nicht... (Wenn es nicht, wahrscheinlich werde ich den Klang einstellen, ein paar Millisekunden später. So, I don ' T care.) Ich schrieb den folgenden code:
WebRequest request =
WebRequest.Create("http://mysite.com/AdjustSound.php?SoundLevel=30");
request.Method = "GET";
request.BeginGetResponse(null, null);
Frage 2 : Tust es scheinen Sie ok, um diesen code ausführen? Ist das ok zum aufrufen request.BeginGetResponse(null, null);
?
BEARBEITEN
Nach dem Lesen der Kommentare; ich meine modifizierten code wie den folgenden:
WebClient webClient = new WebClient();
Uri temp = new Uri("http://mysite.com/AdjustSound.php?SoundLevel=30");
webClient.UploadStringAsync(temp, "GET", "");
Ist, dass ok/besser?
GET oder POST, hängt von der PHP-Skript. Wenn Sie können, öffnen Sie die URL in Ihren web-browser, ohne ein Formular abgeschickt, es ist ein GET.
Es ist nicht ok zu rufen
request.BeginGetResponse(null, null);
. Rufen Sie EndGetResponse. Besser: WebClient oder HttpClient. Vergessen Sie nicht, entsorgen Sie die Objekte.I'm making this http-call very frequently (10-20 times in a sec)
- sind Sie sicher, dass HTTP ist der richtige Weg, dies zu tun? Ist der HTTP-server lokal?Können Sie einige grundlegende code-Beispiele mit
WebClient
oder HttpClient
für meinen Fall?InformationsquelleAutor Sait | 2012-06-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ein: in Diesem Beispiel werden effektiv ist eine "GET" Anfrage. Hier würde ich mit "GET". Wenn Sie hatte eine form, würde ich empfehlen statt dessen "POST"
Wenn Sie geschehen, um den Luxus, mit .Net 4.x, würde ich dringend empfehlen einen Blick auf Ihre "asynchrone APIs":
http://msdn.microsoft.com/en-us/library/hh191443%28v=vs.110%29.aspx
http://msdn.microsoft.com/en-us/library/hh300224%28v=vs.110%29.aspx
BeginGetResponse()
ist ein asynchroner Aufruf.Es ist. Aber wirklich, du bist viel besser mit einem .Net 4.x "HttpClient", wie bereits in den obigen links. IMHO...
Können Sie einige grundlegende code-Beispiele mit HttpClient für meinen Fall dann?
InformationsquelleAutor paulsm4