簡體   English   中英

HttpClient.PostAsJsonAsync引發TaskCanceledException

[英]HttpClient.PostAsJsonAsync throws TaskCanceledException

我正在使用HttpClient.PostAsJsonAsync,並且POST從不發送。 我正在用wireshark監視它,什么都沒發生。

我覺得這里有些僵局,但不知道是什么。 我已閱讀並遵循了指南,但仍然沒有。 我已經嘗試過ConfigureAwait(false),async,await,都為async方法創建了一個新任務,但是該調用從未返回,也從未發布過該帖子。

public class RequestDespacho
    { 
    /* 
         several public properties
    */
    public async void MakeRequest()
            {
                try
                {                        
                var response = await Requester.MakePost("CreateTicket/", this);
                    switch (response.StatusCode) //this line is never reached
                    {
                        case HttpStatusCode.OK:
                            MessageBox.Show("OK");
                            break;
                        case HttpStatusCode.Forbidden:
                            MessageBox.Show("Forbidden");
                            break;
                        case HttpStatusCode.BadRequest:
                            MessageBox.Show("Bad Request");
                            break;
                        case HttpStatusCode.InternalServerError:
                            MessageBox.Show("Internal Server Error");
                            break;
                    }

                }
                catch (Exception e) //taskCanceled exception appears after a while
                {
                    MessageBox.Show(e.ToString());
                }

            }
    }
public static class Requester
    {
        private static readonly HttpClient client;

        static Requester()
        {
            client = new HttpClient()
            {
                BaseAddress = new Uri("http://10.2.4.29:1234/"),
                DefaultRequestHeaders = {{"x-auth_token", "token1"}},
                Timeout = new TimeSpan(0, 0, 15)
            };
        }
        public static async Task<HttpResponseMessage> MakePost(string dir, object data)
        {
            return await client.PostAsJsonAsync(dir, data);
        }
    }
public partial class Form1 : Form
{
    private async void button3_Click(object sender, EventArgs e)
        {
            var image = File.ReadAllBytes(@"G:\1.jpg");
            RequestDespacho req = new RequestDespacho("Av. Monroe 2323", -34.557762, -58.459346, TipoEvento.Merodeo,
                "Palio rojo", image); //my model, doesn't really matter
            await req.MakeRequest();
        }
}

這是一個與網絡有關的問題。 選擇了一個wifi USB板,問題得以解決。 仍然不知道是什么阻止了這些請求...因為有了郵遞員,一切正常,但是在Visual Studio中卻沒有...但是代碼還可以。

暫無
暫無

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

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