Xamarin 表单发布请求 Http 问题

Posted

技术标签:

【中文标题】Xamarin 表单发布请求 Http 问题【英文标题】:Xamarin Forms Post Request Http Issue 【发布时间】:2017-09-13 15:59:36 【问题描述】:

我正在使用我的 Xamarin 表单发出 POST 请求,以将数据发送到我的 WebAPI 项目中的控制器中的操作。带断点的代码不会超出

client.BaseAddress = new Uri("192.168.79.119:10000");

我有命名空间 System.Net.Http 并使用代码中提到的 System。

 private void BtnSubmitClicked(object sender, EventArgs eventArgs)
    
        System.Threading.Tasks.Task<HttpResponseMessage> statCode = ResetPassword();
        App.Log(string.Format("Status Code", statCode));


    
    public async Task<HttpResponseMessage> ResetPassword()
    
        ForgotPassword model = new ForgotPassword();
        model.Email = Email.Text;
        var client = new HttpClient();

        client.BaseAddress = new Uri("192.168.79.119:10000");

        var content = new StringContent(
           JsonConvert.SerializeObject(new  Email = Email.Text ));

        HttpResponseMessage response = await client.PostAsync("/api/api/Account/PasswordReset", content); //the Address is correct

        return response;
    

需要一种方法向该操作发出 Post 请求并将该字符串或 Model.Email 作为参数发送。

【问题讨论】:

你确定它没有抛出异常吗?尝试将方案(“http://”)添加到 URI 字符串 这似乎有帮助!但它仍然不会发布。 但是问题是什么?你有异常,一些消息等吗?? 【参考方案1】:

您需要使用正确的 Uri 以及 await 从被调用方法返回的任务。

private async void BtnSubmitClicked(object sender, EventArgs eventArgs) 
    HttpResponseMessage response = await ResetPasswordAsync();
    App.Log(string.Format("Status Code: 0", response.StatusCode));


public Task<HttpResponseMessage> ResetPasswordAsync() 
    var model = new ForgotPassword() 
        Email = Email.Text
    ;
    var client = new HttpClient();
    client.BaseAddress = new Uri("http://192.168.79.119:10000");
    var json = JsonConvert.SerializeObject(model);
    var content = new StringContent(json, System.Text.Encoding.UTF8, "application/json");
    var path = "api/api/Account/PasswordReset";
    return client.PostAsync(path, content); //the Address is correct

【讨论】:

以上是关于Xamarin 表单发布请求 Http 问题的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin 表单 http 异步请求

xamarin 表单中的 Web API 请求错误

在一个地方处理 xamarin 表单中 api 请求的异常

Xamarin.Forms 与 Net.Http [关闭]

xamarin 学习

Xamarin表单,在Visual Studio Android Emulator上运行的应用程序但在真实设备上崩溃