Ich habe JavaScript-Code, den ich in C # konvertieren muss. Mein JavaScript-Code sendet einige JSON-Dateien an einen erstellten Webdienst. Dieser JavaScript-Code funktioniert einwandfrei und sieht folgendermaßen aus:
var vm = { k: "1", a: "2", c: "3", v: "4" };
$.ajax({
url: "http://www.mysite.com/1.0/service/action",
type: "POST",
data: JSON.stringify(vm),
contentType: "application/json;charset=utf-8",
success: action_Succeeded,
error: action_Failed
});
function action_Succeeded(r) {
console.log(r);
}
function log_Failed(r1, r2, r3) {
alert("fail");
}
Ich versuche herauszufinden, wie man dies in C # konvertiert. Meine App verwendet .NET 2.0. Soweit ich das beurteilen kann, muss ich Folgendes tun:
using (WebClient client = new WebClient())
{
string json = "?";
client.UploadString("http://www.mysite.com/1.0/service/action", json);
}
Ich stecke an diesem Punkt ein wenig fest. Ich bin mir nicht sicher, wie json
es aussehen soll. Ich bin nicht sicher, ob ich den Inhaltstyp festlegen muss. Wenn ich das tue, bin ich mir nicht sicher, wie ich das machen soll. Ich habe auch gesehen UploadData
. Ich bin mir also nicht sicher, ob ich überhaupt die richtige Methode verwende. In gewissem Sinne ist die Serialisierung meiner Daten mein Problem.
Kann mir jemand sagen, was ich hier vermisse?
Danke dir!
WebClient
versucht und es nicht zum Laufen gebracht. Dann habe ich diese Lösung ausprobiert und sie hat wie ein Zauber funktioniert. Ich habeUTF8Encoding
statt verwendetASCIIEncoding
, um das Byte-Array zu erstellen, da ich keinen Grund sehe, ASCII zu verwenden, wodurch die verfügbaren Zeichen auf eine inakzeptable Weise reduziert werden. ASCII enthält nur 127 Zeichen im Zeichensatz.Die Frage ist bereits beantwortet, aber ich denke, ich habe die Lösung gefunden, die einfacher und relevanter für den Fragentitel ist. Hier ist sie:
quelle
Das folgende Beispiel zeigt, wie Sie einen JSON über die WebClient.UploadString-Methode POSTEN :
quelle
POST
Argument weglassen , daUploadString
diese Methode implizit als Standard verwendet wird. Darüber hinaus möchten Sie möglicherweise hinzufügen,client.Headers.Add(HttpRequestHeader.Accept, "application/json");
wenn SieJSON
als Rendite erwarten .public class WebClient : Component
public class Component : MarshalByRefObject, IComponent, IDisposable