C# Konsole-Anwendung httpWebRequest
Im Versuch, erstellen Sie eine sehr einfache c# - Konsolenanwendung, um post-Daten an eine web-api. Aber was ich auch Tue, ich bekomme eine Fehlermeldung nach der Antwort wie:
responseText "{\"info\":{\"status\":\"gescheitert\",\"Fehler\":{\"code\":1000,\"message\":\"Invalid argument von der Anfrage\"}}}," string
Api http://www.detrack.com/api-documentation/ ist auf der Suche nach einem Beitrag wie
https://app.detrack.com/api/v1/deliveries/view/all.json?key=dab13cc0094620102d89f06c0e464b7de0782bb979258d3a&json={"Datum":"2014-08-29"}
Ich weiß, mit diesem in chrome erweiterte rest-Anwendung-Erweiterung gibt einen gültigen Ergebnis. Aber Wenn ich versuche das gleiche über diese Konsole code. Ich bekomme eine Fehlermeldung!.
Hier ist der code, den ich in meiner Konsolenanwendung.
using System;
using System.Net;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://app.detrack.com/api/v1/deliveries/view/all.json?key=dab13cc0094620102d89f06c0e464b7de0782bb979258d3a&");
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = "json={\"date\":\"2014-08-28\"}";
Console.WriteLine(json);
streamWriter.Write(json);
}
var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var responseText = streamReader.ReadToEnd();
Console.WriteLine(responseText);
Console.ReadKey();
}
}
}
}
Jede Hilfe/Anleitung wäre wirklich dankbar
brendan
Du musst angemeldet sein, um einen Kommentar abzugeben.
So, ich bin auf der Suche auf diese:
Und laut der kurzen Beschreibung auf detrack, dass ist nicht, was Sie wollen. Sie erwarten gültiges json-und das ist nicht. Hier ist, was Sie sein sollte, unter Berücksichtigung Gültiger json:
Gewarnt werden, ich weiß nicht, über Ihre Flucht von Zitaten. Ich würde serialisieren anders; entweder eine stark typisierte Klasse oder anonyme Klasse. Anon, würde so Aussehen:
Abgesehen von Bedenken in der Zeit, Zeitzonen, utc, etc, die das serialisieren Ihre Strukturen korrekt. Hier ist eine kratzig-Programm von linqpad:
Können Sie versuchen (ungetestet!) - code unten.