ASP.NET Web API和MonoDroid

时间:2012-04-17 00:48:52

标签: 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切换为使用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>

 [{"AlbumPK":"f09d14cf-3bab-44c8-b614-2b7cf728efd4","Name":"Colorado",
    "UserName":"emorin","ParentAlbumFK":null,
    "DateCr‌​eated":"2012-03-12T19:47:54.493"}]

Fiddler将接受标头更改为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

1 个答案:

答案 0 :(得分:0)

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