Xamarin.android ASP.NET Web API和MonoDroid

Xamarin.android ASP.NET Web API和MonoDroid,xamarin.android,asp.net-web-api,Xamarin.android,Asp.net Web Api,我正在尝试从MonoDroid调用我在IIS中托管的ASP.NET Web API。服务很好,我可以从不同的端点调用它。问题是,在MonoDroid中,当我尝试这样做时,会出现无效的强制转换异常 var s = response.GetResponseStream(); var j = (JsonObject)JsonObject.Load(s); System.InvalidCastException:返回加载部件 我读了一些书,人们似乎说要尝试将Web API转换为使用JsonNetFor

我正在尝试从MonoDroid调用我在IIS中托管的ASP.NET Web API。服务很好,我可以从不同的端点调用它。问题是,在MonoDroid中,当我尝试这样做时,会出现无效的强制转换异常

var s = response.GetResponseStream();
var j = (JsonObject)JsonObject.Load(s);
System.InvalidCastException:返回加载部件

我读了一些书,人们似乎说要尝试将Web API转换为使用JsonNetFormatter类。我试过了,但还是不走运

有人对我能尝试什么有什么想法吗

使现代化 这是有效载荷

<ArrayOfAlbum xmlns:xsi="w3.org/2001/XMLSchema-instance"; 
              xmlns:xsd="w3.org/2001/XMLSchema">; 
   <Album> 
      <AlbumPK>f09d14cf-3bab-44c8-b614-2b7cf728efd4</AlbumPK>
      <Name>Colorado</Name> 
      <UserName>firstUser</UserName> 
      <ParentAlbumFK xsi:nil="true" /> 
      <DateCreated>2012-03-12T19:47:54.493</DateCreated> 
   </Album> 
</ArrayOfAlbum>
Fiddler将accept标头更改为JSON的响应

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/7.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Tue, 17 Apr 2012 19:45:47 GMT

97
[{ "AlbumPK":"f09d14cf-3bab-44c8-614-2b7cf728efd4","Name":"Colorado",
   "UserName":"emorin","ParentAlbumFK":null,
   "DateCreated":"2012-03-12T19:47:54.493"}]
0

您的服务器似乎正在以分块编码发送数据,而MonoDroid可能在理解分块编码时遇到问题。尝试在IIS中关闭它。

尝试从浏览器/fiddler/调用该服务。。。获取JSON并将其发布到这里。在不首先查看JSON的情况下,不要更改服务中的任何内容;charset=utf-8过期:-1服务器:Microsoft IIS/7.0 X-AspNet-Version:4.0.30319 X-Powered-By:ASP.NET日期:2012年4月17日星期二16:20:56 GMT内容长度:151[{“AlbumPK”:“f09d14cf-3bab-44c8-b614-2b7cf728efd4”,“名称”:“科罗拉多”,“用户名”:“埃莫林”,“ParentAlbumFK”:null,“日期创建”:“2012-03-12T19:47:54.493”}那么第一个XML是什么?哪一个是正确的?请更新问题,不要使用注释。抱歉,第一个问题是来自浏览器的XML。第二个是我在fiddler中看到的。在我的mono应用程序中,我将标题设置为json。我将在fiddler中试用。我曾考虑过关闭它,但我的托管公司对此没有选择。有趣的是,我尝试在本地部署它,fiddler关于被分块的结果也是一样的。即使从卡西尼号上我也能得到同样的东西。环顾网络,我发现一篇帖子说WebAPI没有设置内容长度,所以我猜这会导致chuncked。
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/7.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Tue, 17 Apr 2012 19:45:47 GMT

97
[{ "AlbumPK":"f09d14cf-3bab-44c8-614-2b7cf728efd4","Name":"Colorado",
   "UserName":"emorin","ParentAlbumFK":null,
   "DateCreated":"2012-03-12T19:47:54.493"}]
0