如何在CreateLoginAsync()中实例化LoginData的新对象而不会出现错误

时间:2019-01-08 19:31:05

标签: c# asp.net rest

此代码现在没有错误。但是我正在尝试连接api,并且在HttpResponseMessage response = await client.PostAsJsonAsync"login/", login);中,页面会无限收费,控制台会向我显示:El programa '[672] iisexpress.exe' terminó con código -1 (0xffffffff). 我已经验证这不是服务器的问题,因为在那种情况下,它应该收到代码404。但是相反,该页面仍会无限期地加载。

代码:

 namespace Vaersacces
 {
//Plantilla para datos del Login
public class LoginData
{
    string user;
    string pass;

    public LoginData(string user, string pass)
    {
        this.user = user;
        this.pass = pass;
    }

}

//Clase Asíncrona para llamar al Web Service 
public class AsyncTaskLogin
{

    //Instancia de un nuevo cliente
    static HttpClient client = new HttpClient();

    //Se asignan los datos a la nueva instancia
    public static async Task<Uri> RunAsync(LoginData login)
    {
        client.BaseAddress = new Uri("dirección del servidor");
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(
            new MediaTypeWithQualityHeaderValue("application/json"));

        //Respuesta del servidor
        System.Diagnostics.Debug.WriteLine("Entrando en CreateLoginAsync");
        Uri uri = await CreateLoginAsync(login);
        System.Diagnostics.Debug.WriteLine("Saliendo de CreateLoginAsync");
        return uri;
    }   

    //Método para postear un objeto tipo LoginData en formato Json
    public static async Task<Uri> CreateLoginAsync(LoginData login)
    {
        HttpResponseMessage response = await client.PostAsJsonAsync(
            "login/", login);
        response.EnsureSuccessStatusCode();
        return response.Headers.Location;
    }


}

}

0 个答案:

没有答案