2015-10-15 68 views
0

我使用REST調用,代碼如下:任務被取消錯誤

public bool restfunc(string id) 
{ 
    var result = Task.Factory.StartNew(() => RunAsync(id)).Result; //RunAsync(id).Wait(); 
    return true; 
} 

public static Task RunAsync(string id) 
{ 
    try 
    { 
     dynamic result = null; 
     string pathValue = WebConfigurationManager.AppSettings["R2G2APIUrl"]; 
     using (var client = new HttpClient()) 
     { 
      client.BaseAddress = new Uri(pathValue); 
      client.DefaultRequestHeaders.Accept.Clear(); 
      client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
      client.Timeout = TimeSpan.FromMinutes(5); 

      Task responsetask = null; 
      var jobid = id.Split('_')[1]; 
      client.GetAsync("OnTranscriptionStarted/" + jobid).ContinueWith((requesttask) => 
       { 
        responsetask = requesttask; 
        HttpResponseMessage resp = requesttask.Result; //HERE ERR OCCUR 
        resp.EnsureSuccessStatusCode(); 
        resp.Content.ReadAsStringAsync().ContinueWith((readtask) => 
        { 
         result = JsonConvert.DeserializeObject(readtask.Result); 
        }); 
       }); 
     } 
     return result; 

的疑問:

  1. 我在pathvalue ..我API在寫pathvalue GetAsync()或函數名稱和我想要調用的ID?

幫助我從這個問題請..

+0

你需要或者'pathValue'或功能的名稱?你的問題不清楚。或者,你是否需要連接在一起? –

+0

我需要'pathvalue/functionname/value' @YuvalItzchakov – Dhara

回答

0

您可以使用該UriBuilder

var builder = new UriBuilder(
     "http", pathValue, 80, string.Format("OnTranscriptionStarted/{0}", jobId)); 
client.GetAsync(builder.Uri.ToString()); 
+0

mm..pathvalue的值是'http://192.134.0.02:2341/API /':/ – Dhara

+0

你能改變它嗎?只要刪除'http'。 –