2017-12-27 12 views
0

응답을 표시 할 때 null 결과가 나타납니다. 내가 http에 연결하기 때문에 그것이 수업일지도 모른다. 아이디어가 있으십니까? 고맙습니다 !데이터를 표시하지 않음 REST xamarin 양식 가져 오기

Device.BeginInvokeOnMainThread(async() => 
      { 
       RestClient client = new RestClient(); 
       var apiresult = await client.Get<info>("https://jsonplaceholder.typicode.com/posts"); 


       if (apiresult != null) 
       { 

        labelchange.Text = apiresult.Text.title; 
       } 

      }); 

과 실제 REST

public class RestClient 
    { 
     public async Task <T> Get <T>(string url) 

     { 

      try 
      { 
       HttpClient client = new HttpClient(); 
       var response = await client.GetAsync(url); 
       if (response.StatusCode == System.Net.HttpStatusCode.OK) 
       { 
        var jsonstring = await response.Content.ReadAsStringAsync(); 
        return Newtonsoft.Json.JsonConvert.DeserializeObject<T>(jsonstring); 
       } 
      } 
      catch 
      { 

      } 
      return default(T); 
     } 
    } 

답변

0

당신이 위해 RESTClient에 전달 오브젝트 유형이 올바르지 않습니다

public class info 
    { 

     public class Text 
     { 
      public int userId { get; set; } 
      public int id { get; set; } 
      public string title { get; set; } 
      public string body { get; set; } 
     } 

통화입니다.

foreach (var info in apiresult) 
{ 
    // Do something with info. e.g. info.userId, info.id... 
} 
:

var apiresult = await client.Get<List<Text>>("https://jsonplaceholder.typicode.com/posts"); 

이 결과 내에서 항목을, 결과의 멤버에 액세스 단지 foreach는 루프 : https://jsonplaceholder.typicode.com/posts에서 반환 유형은 다음 줄을 변경해야합니다, 그래서 List<Text>

입니다

+0

감사합니다. 그걸 고치면. – Pxaml

+0

빠른 질문입니다. 개체 목록에 액세스 할 때 평소의 일은 ex : ** labelchange = apiresult.info.Text.Name; **이지만 그 멤버들에게 접근 할 수는 없습니다. 주위에 어떤 일이 있니? – Pxaml

+0

그냥 foreach 루프를 apiresult. 나는 대답의 일부로 추가했다. – lowleetak

관련 문제