簡體   English   中英

任務已取消錯誤

[英]A task was cancelled error

我正在使用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()寫入pathvalue或要調用的函數名稱和ID?

請幫助我解決這個問題。

您可以UriBuilder使用UriBuilder

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM