2017-07-08 1 views
-1

Ich benutze die Restsharp-Bibliothek, um Webservice-Vorgänge auszuführen. Ich habe versucht, auf Daten über den Link zuzugreifen (http://www.mocky.io/v2/595616d92900003d02cd7191) und es in der Konsole zu drucken, aber ich bekomme keine Antwort .Wenn ich Breakpoints verwendet, zeigt Response Null. Hier ist mein Code, um Daten von der Verbindung zu erhalten.Antwort ist null, wenn ich die GET-Anforderung der Restsharp-Bibliothek für den Zugriff auf Json-Daten verwendete

private async void GetItemsFromJSON() 
    { 
     IRestClient client = new RestClient("http://www.mocky.io/v2/595616d92900003d02cd7191"); 
     IRestRequest request = new RestRequest(Method.GET); 
     request.RequestFormat = DataFormat.Json; 

     try 
     { 
      await Task.Run(() => 
      { 
       IRestResponse<List<ItemDetails>> response = client.Execute<List<ItemDetails>>(request); 
       var Items = SimpleJson.DeserializeObject<ItemDetails>(response.Content); 
       Console.WriteLine(response.Content); 

}

public class ItemDetails 
{ 
    public List<Itemschema> items { get; set; } 
} 
public class Itemschema 
{ 
    public int id { get; set; } 
    public string sku { get; set; } 
    public string name { get; set; } 
    public int attribute_set_id { get; set; } 
    public int price { get; set; } 
    public int status { get; set; } 
    public int visibility { get; set; } 
    public string type_id { get; set; } 
    public string created_at { get; set; } 
    public string updated_at { get; set; } 
    public int weight { get; set; } 
} 

bin ich etwas fehlt hier? Mein Schema-Klasse, die auf die JSON-Daten entspricht, wird oben gezeigt.

Antwort

1

Ich vermute, dass:

IRestResponse<List<ItemDetails>> response = client.Execute<List<ItemDetails>>(request); 

sein soll:

IRestResponse<ItemDetails> response = client.Execute<ItemDetails>(request); 

http://www.mocky.io/v2/595616d92900003d02cd7191 scheint ein items Eigentum zurückzukehren, die eine Reihe von Schemata enthalten. Das liegt näher an ItemDetails als List<ItemDetails>.

Das komplette Beispiel funktioniert, so können Sie es mit Ihrem Code vergleichen wollen:

using System; 
using System.Collections.Generic; 
using RestSharp; 

namespace Test 
{ 
    public class ItemDetails 
    { 
     public List<Itemschema> items { get; set; } 
    } 
    public class Itemschema 
    { 
     public int id { get; set; } 
     public string sku { get; set; } 
     public string name { get; set; } 
     public int attribute_set_id { get; set; } 
     public int price { get; set; } 
     public int status { get; set; } 
     public int visibility { get; set; } 
     public string type_id { get; set; } 
     public string created_at { get; set; } 
     public string updated_at { get; set; } 
     public int weight { get; set; } 
    } 

    public class Program 
    { 
     static void Main(string[] args) 
     { 
      IRestClient client = new RestClient("http://www.mocky.io/v2/595616d92900003d02cd7191"); 
      IRestRequest request = new RestRequest(Method.GET); 
      request.RequestFormat = DataFormat.Json; 

      IRestResponse<ItemDetails> response = client.Execute<ItemDetails>(request); 
      var Items = SimpleJson.DeserializeObject<ItemDetails>(response.Content); 
      Console.WriteLine(Items.items.Count); 
      Console.ReadLine(); 
     } 
    } 
} 
+0

Ich habe versucht, wie Sie vorgeschlagen. Trotzdem ist meine Antwort null. Können Sie sich das bitte anschauen? –

+0

Ich habe ein komplettes Beispiel veröffentlicht - wie unterscheidet es sich von Ihrem Code? – mjwills

+0

Vielen Dank. Ich fand heraus, dass das Problem mit dem Internet meines Telefons nicht im Code war. Irgendwann wurde es gelöst. –

Verwandte Themen