Senden Liste der Objekte, die auf der Web-API
Bin ich Probleme beim versenden einer Liste der Objekte, die zu einem webapi controller.
Dies ist der controler:
[AcceptVerbs("POST")]
public string syncFoodData(List<intakeSync> str)
{
string apikey = Request.Headers.GetValues("api_key").ToArray()[0];
return "data syncronised";
}
Dies ist die Klasse:
public class intakeSync
{
public int memberID { get; set; }
public Double size { get; set; }
public string food { get; set; }
public string token { get; set; }
public string time { get; set; }
public string date { get; set; }
public string nocatch { get; set; }
public string calories { get; set; }
}
Den Wert der str-Wert ist immer null.
dies ist das webmethod -, sendet die httprequest an die webapi
public static string syncIntakeData(string token, string[] syncString)
{
JavaScriptSerializer js = new JavaScriptSerializer();
List<intakeSync> str = new List<intakeSync>();
for (int i = 0; i <= syncString.Length - 1; i++)
{
str.Add(js.Deserialize<intakeSync>(syncString[i]));
}
string url = URI + "/api/Food/?str=" +js.Serialize(str);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.Headers.Add("api_key", token);
Stream requestStream = request.GetRequestStream();
StreamReader read = new StreamReader(request.GetResponse().GetResponseStream());
string dat = read.ReadToEnd();
read.Close();
request.GetResponse().Close();
return dat;
}
Wie sind Sie mit der Absendung Ihrer Liste ? Könnte Sie nach Ihrem format ?
es ist geschickt von einer anderen Funktion sendet eine Liste von Objekten
es ist geschickt von einer anderen Funktion sendet eine Liste von Objekten
InformationsquelleAutor user2617874 | 2013-12-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie verwenden :
Request-body in Json
Rest-Api .net C#
{[{id:1, nombre:"kres"}, {id:2, nombre:"cruz"}]}
. Nach dem entfernen der geschweiften Klammern vor der eckigen Klammern, klappt es.InformationsquelleAutor krescruz
Ich weiß nicht wirklich, wie dein JSON serialisiert wird in der Zeile
js.Serialize(str);
ich vermute, dass diese Zeile ist der Kern des Problems. Senden von JSON ist besser geeignet in der POST-Request-body als im query-string. Anyways, ich denke, dass HttpClient ist besser geeignet für das arbeiten mit WebApi, denn er bietet symmetrische Programmier-Erfahrung. Sie könnten versuchen, so etwas wie, dass mit HttpClient :InformationsquelleAutor Tomasz Jaskuλa