加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 从Xamarin调用PutAsJsonAsync的异常

发布时间:2020-12-15 07:46:25 所属栏目:百科 来源:网络整理
导读:我正在尝试使用WebApi编写一个小型测试应用程序.我主要使用它,我能够从我的Web服务获取数据并在 Android中显示它. 我添加了一个按钮,并使用了我在Winforms测试客户端中使用的相同代码: async void buttonSave_Clicked(object sender,EventArgs e) { HttpCli
我正在尝试使用WebApi编写一个小型测试应用程序.我主要使用它,我能够从我的Web服务获取数据并在 Android中显示它.

我添加了一个按钮,并使用了我在Winforms测试客户端中使用的相同代码:

async void buttonSave_Clicked(object sender,EventArgs e)
    {
        HttpClient client = new HttpClient ();
        Customer data = new Customer () {
        Surname = editSurname.Text,GivenName = editGivenName.Text};

        var result = await client.PutAsJsonAsync("http://10.0.0.4/WebApplication1/api/Customers/2",data);
       if (result.IsSuccessStatusCode ) {
       labelStatus.Text = "Saved";
       }
    }

这在Windows窗体测试应用程序中工作正常,但在Xamarin应用程序中,我在client.PutAsJsonAsync上获得异常:

E / mono-rt(7519):[错误]致命未处理异常:System.TypeLoadException:无法从程序集’System.Net.Http.Formatting,版本加载类型’System.Net.Http.ObjectContent`1 [T]’ = 5.1.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35′.

有什么建议?使用Xamarin 3.

编辑:

如果我手动格式化内容,它可以工作:

string sData =   Newtonsoft.Json.JsonConvert.SerializeObject(data);

        HttpContent content = new System.Net.Http.StringContent(sData,System.Text.Encoding.UTF8,"application/json") ;
        var result = await client.PutAsync("http://10.0.0.4/WebApplication1/api/Customers/2",content);

据我所知,我的所有参考文献都是正确的.我使用了WebApi Client nuget包.

参考文献:

Newtonsoft.Json
System.Net.Http
System.Net.Http.Extensions
System.Net.Http.Formatting
System.Net.Http.Primitives

解决方法

您需要将以下Nuget包安装到引用您的HttpClient项目的所有项目中

> Microsoft.Bcl.Build
> Microsoft.Bcl

这些是我构建项目时Visual Studio的警告,在我完成之后,它工作了!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读