Wie zu verwenden verb BEKOMMEN mit WebClient-Anforderung?
Wie könnte ich das ändern das verb von einer WebClient-Anforderung? Es scheint, dass nur/default POSTEN, auch in dem Fall, DownloadString.
try
{
WebClient client = new WebClient();
client.QueryString.Add("apiKey", TRANSCODE_KEY);
client.QueryString.Add("taskId", taskId);
string response = client.DownloadString(TRANSCODE_URI + "task");
result = JsonConvert.DeserializeObject<Dictionary<string, dynamic>>(response);
}
catch (Exception ex )
{
result = null;
error = ex.Message + " " + ex.InnerException;
}
Und Fiddler sagt:
POST http://someservice?apikey=20130701-234126753-X7384&taskId=20130701-234126753-258877330210884 HTTP/1.1
Content-Length: 0
- Sie sind etwas ganz besonderes, irgendwo - DownloadString verwendet ERHALTEN: "...Für eine HTTP-Ressource, die GET-Methode verwendet wird."
- Seltsam, ich dachte "Herunterladen" Methoden verwenden würde, BEKOMMEN. Das ist die Gesamtheit der meine code für diese Anforderung.
- Sind Sie völlig sicher
WebClient
ist nicht eine eigene Klasse? - msdn.microsoft.com/en-us/library/system.net.webclient.aspx ja. Ich dachte, Upload<type> - Methoden verwenden würden, POST-oder PUT-und Download - <Typ> verwenden würde, BEKOMMEN. Seltsam. Nirgendwo sonst muss ich überschreiben, WebClient oder zu verlängern.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie HttpWebRequest-stattdessen würden Sie mehr Kontrolle über den Anruf. Sie können ändern, den REST verb durch die Methode Eigenschaft (default ist GET)
Nicht sicher, ob Sie verwenden können, WebClient für, die. Aber warum nicht HttpClient.GetAsync-Methode (String) http://msdn.microsoft.com/en-us/library/hh158944.aspx
Wie man sehen kann in den Quellcode .NET, die HTTP-Methode der DownloadString hängt vom Zustand der privaten WebClient-Instanz-Feld m_Method, die gelöscht wird zu null bei jedem neuen request-Methode call (link) und Standardeinstellungen für die Web-Anfrage-Ersteller (hängt von der URI, zum Beispiel das ftp-Protokoll wird ein anderer Schöpfer), aber dies ist nicht thread-sicher.
Vielleicht sind Sie das teilen dieser WebClient-Instanz unter mehrere Anrufe gleichzeitig?
So kommt er Durcheinander. Entweder das oder die URI verwirrt den WebRequest Schöpfer.