Care este cel mai simplu mod de a apela un fișier HttpHandler în .NET?

I have an HttpHandler on my webserver that takes a URL in the form of "https://servername/myhandler?op=get&k=Internal&m=jdahug1". I need to call this URL from my .NET app and capture whatever the output is. Does anyone know how I can do that? I want it to be simple so that I just get back a string with the output, and that I can specify my own timeout.

  • Vă mulțumim!
2

4 răspunsuri

Încercați clasa System.Net.WebClient.

Puteți utiliza metoda .DownloadStringAsync() pentru a impune o expirare.

6
adăugat
Această clasă nu are capacitatea de a seta un timeout așa cum am vrut (în măsura în care pot vedea) dar sunt de acord că este cel mai simplu mod de a face apelul.
adăugat autor skb, sursa

Shawn Wildermuth oferă o imagine de ansamblu asupra celor două opțiuni pe care le aveți: WebClient și WebRequest ( http://wildermuth .com/2008/09/27/WebClient_vs_WebRequest_in_Silverlight_2 ). WebClient este doar o abstractizare de nivel superior care gestionează mai multe detalii pentru dvs. Deoarece încercați doar să obțineți un șir de caractere, aș dori să folosesc WebClientul, care, după cum descrie Shawn, are o metodă DownloadString care vă așteaptă să o utilizați.

3
adăugat

După cum a spus Joel că WebClient ar face truc.

string handlerResponse = new System.Net.WebClient().DownloadString("https://servername/myhandler?op=get&k=Internal&m=jdahug1");

bineînțeles, având în vedere propriul timp de expirare și bunele practici, probabil că nu doriți să introduceți apelul, dar obțineți ideea.

2
adăugat

am folosit următoarele în backend-ul produsului nostru (acesta este doar codul de bază, nu cu eroare de timp de eroare etc.)

using System.Net;

using System.IO;

HttpWebRequest req = (HttpWebRequest) WebRequest.Create(WebPageUrl);

WebResponse resp = req.GetResponse();

Stream stream = resp.GetResponseStream();

StreamReader reader = new StreamReader(stream);

output.Write(reader.ReadToEnd());
1
adăugat