HttpClient抛出超时但Postman按预期工作

时间:2017-08-22 17:57:07

标签: c# asynchronous visual-studio-2015 dotnet-httpclient

我处理这个奇怪的问题。我试图通过vpn向服务器发送http帖子。我使用OpenVPN连接到它。

如果我通过邮递员发布邮件请求,它可以完美地运行。如果我通过visual studio进行操作,则不会发生任何事情,之后会抛出超时。

我断开了以太网并连接了一个wifi usb板,视觉工作室开始工作了一段时间。然后它突然停止发送请求。我无法回想起我提出的任何要求停止工作的事情。

我通过wireshark监控所有事情。出现了邮递员请求,视觉工作室没有。

public class CustomObject
    { 
   /* lots of properties */
    public async void MakeRequest()
        {
            try
            {
               var response = await RequesterDespacho.MakePost("CreateTicket/", this);
                switch (response.StatusCode)
                {
                    case HttpStatusCode.OK:
                        return;
                    case HttpStatusCode.Forbidden:
                        Logger.Info("[DESPACHO] Forbidden");
                        break;
                    case HttpStatusCode.BadRequest:
                        Logger.Info("[DESPACHO] Bad Request: ");
                        break;
                    case HttpStatusCode.InternalServerError:
                        Logger.Info("[DESPACHO] Error 500");
                        break;
                }
            }
            catch (Exception ex) //TaskCanceledException = timeout
            {
                Logger.Error(ex.ToString);
            }

        }
}

public static class RequesterDespacho
{
    private static readonly HttpClient client;

    static RequesterDespacho()
    {
        client = new HttpClient();
        client.BaseAddress = new Uri("http://10.2.4.29:1234");
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Add("x-auth_token", "token1");
    }
    public static async Task<HttpResponseMessage> MakePost(string dir, object data)
    {
        return await client.PostAsJsonAsync(dir, data);
    }
}

0 个答案:

没有答案