In meinem neuesten Projekt möchte ich einen Benutzernamen und ein Passwort auf einem Android-Telefon eingeben, im JSON-Format speichern und an einen ASP.NET MVC-Server senden, der Konfigurationsdaten in einem neuen JSON zurückgeben soll.Wie übergebe ich JSON von Android zum MVC-Controller?
Was ich bisher haben:
Android (Teilcode):
String json = "{\"x\": \"val1\",\"y\":\"val2\"}";
URL url = new URL("http://xxxxx/Home/GetData");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(5000);
conn.setReadTimeout(10000);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json"); // have tried without this
conn.setRequestProperty("Content-Length", json.getBytes().length + "");
conn.setDoOutput(true);
os = conn.getOutputStream();
os.write(json.getBytes("UTF-8"));
os.close();
conn.connect();
Der JSON-String ist hier nur zum Testen.
MVC:
[HttpPost]
public ActionResult GetData(String request)
{
Debug.WriteLine(request.Length); // not relevant to the question
var data = new { Name = "Test", Age = "39" };
return Json(data);
}
Gibt JSON mit Testdaten.
Das String-Argument im MVC-Controller ist hier wahrscheinlich falsch. Ich habe versucht, z.B. byte [], aber am Ende habe ich immer NULL.
Jede Hilfe mit diesem oder Vorschläge für Alternativen ist willkommen!
Prost
Was geschrieben wird eine Folge von Bytes aus der ursprünglichen Zeichenfolge. Mein mein Problem ist, wie man sie im Controller erhält (der über den Inhalt des json nicht weiß). – ludolover
@ludolover: Ist der Inhalt der post-Anfrage wegen der "Bytes von der ursprünglichen Zeichenfolge" irgendwie anders? Wie sieht die tatsächliche Anfrage im Vergleich zum einfachen Senden von einfachem JSON im Anfragetext aus? Was werden Sie mit dieser Datenserver-Seite machen, dass der serverseitige Code die Struktur nicht kennt? – David