Ich muss "HTTP Post" mit WebClient verwenden, um einige Daten an eine bestimmte URL zu senden, die ich habe.
Jetzt weiß ich, dass dies mit WebRequest erreicht werden kann, aber aus bestimmten Gründen möchte ich stattdessen WebClient verwenden. Ist das möglich? Wenn ja, kann mir jemand ein Beispiel zeigen oder mich in die richtige Richtung weisen?
HttpRequestHeader.ContentType
Aufzählungsmitglied hier wie folgt zu verwendenweb.Headers[HttpRequestHeader.ContentType]
: pWebClient
erbt vonComponent
, der enthält~Component() {Dispose(false);}
). Das Problem besteht darin, dass der Garbage Collector möglicherweise eine beliebig lange Zeit benötigt, da er nicht verwaltete Ressourcen bei Sammlungsentscheidungen nicht berücksichtigt. Hochwertige Ressourcen müssen so schnell wie möglich bereinigt werden. Wenn Sie beispielsweise ein nicht benötigtes Dateihandle offen lassen, kann die Datei möglicherweise nicht gelöscht oder von anderem Code beschrieben werden.Es gibt eine integrierte Methode namens UploadValues , die HTTP-POST (oder jede Art von HTTP-Methoden) senden UND die Erstellung des Anforderungshauptteils (Verketten von Parametern mit "&" und Escapezeichen von Zeichen durch URL-Codierung) im richtigen Formulardatenformat übernimmt:
quelle
Mit
WebClient.UploadString
oder könnenWebClient.UploadData
Sie Daten einfach auf den Server POSTEN. Ich werde ein Beispiel mit UploadData zeigen, da UploadString auf die gleiche Weise wie DownloadString verwendet wird.mehr: http://www.daveamenta.com/2008-05/c-webclient-usage/
quelle
quelle
quelle
Die Verwendung von simple
client.UploadString(adress, content);
funktioniert normalerweise einwandfrei, aber ich denke, es sollte beachtet werden, dass aWebException
ausgelöst wird, wenn kein erfolgreicher HTTP-Statuscode zurückgegeben wird. Normalerweise gehe ich so vor, um alle Ausnahmemeldungen zu drucken, die der Remote-Server zurückgibt:quelle
Verwenden von webapiclient mit model send serialize json parameter request.
PostModel.cs
WebApiClient.cs
Business Caller-Methode
quelle
Hier ist die klare Antwort:
quelle