2

이가의 Andorid에 있지만 윈도우 폰 프로젝트에서 작동하는 PCLMVVMCross PCL REST 호출하지 윈도우 폰에서 안드로이드에서 작동

class CallSAPService : ICallSAPService 
    { 
     public string MakeSAPRestCall(string url, string jsondata, string username, string password) 
     { 
      string retmessage = ""; 
      try 
      { 
       NetworkCredential cr = new NetworkCredential(); 
       cr.UserName = username; 
       cr.Password = password; 
       HttpClientHandler handler = new HttpClientHandler(); 
       handler.Credentials = cr; 
       HttpClient httpClient = new HttpClient(handler); 
       Uri Auri = new Uri(url); 
       StringContent content = new System.Net.Http.StringContent(jsondata.ToString(), Encoding.UTF8, "application/json"); 
       var result = httpClient.PostAsync(Auri, content).Result; 
       Task<string> ff = result.Content.ReadAsStringAsync(); 
       retmessage = ff.Result; 

       //StringContent content2 = new System.Net.Http.StringContent(jsondata.ToString(), Encoding.UTF8, "application/json"); 
       //var httpClient2 = new HttpClient(new HttpClientHandler()); 
       //Task<HttpResponseMessage> response = httpClient2.PostAsync(url, content2); 
       //response.Result.EnsureSuccessStatusCode(); 
       //var res = response.Result; 

       // retmessage = res.Content.ReadAsStringAsync().ToString(); 
      }  
      catch (Exception Ex) 
      { 
       retmessage = Ex.Message; 
      } 

      return retmessage; 
     } 
    } 
} 

에 다음 코드 조각이있다. 윈도우 폰 프로젝트의 라인 :

retmessage = ff.Result; 

당신은 UI 스레드에서의 동기 I/O를 수행 할 수 없습니다 Task<string> ff = result.Content.ReadAsStringAsync(); 내가이 줄 문제입니다 확신 실행 밖으로

답변

0

오지 않는다 윈도우 폰. Task.Result 대신 async 및 await을 사용하십시오.