2012-04-17 89 views
1

我想調用一個ASP.NET Web API,它是從MonoDroid在IIS中託管的。服務很好,我可以從不同的端點調用它。問題是在MonoDroid中,當我嘗試執行此操作時,我得到無效的強制轉換異常。ASP.NET Web API和MonoDroid

var s = response.GetResponseStream(); 
var j = (JsonObject)JsonObject.Load(s); 

System.InvalidCastException:返回加載部分。

我已經做了一些閱讀,人們似乎說要嘗試切換Web API以使用JsonNetFormatter類。我嘗試過,仍然沒有運氣。

任何人有什麼想法我可以嘗試?

UPDATE

這裏是有效載荷

<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> 

從提琴手改變接受頭JSON
[{"AlbumPK":"f09d14cf-3bab-44c8-b614-2b7cf728efd4","Name":"Colorado", 
    "UserName":"emorin","ParentAlbumFK":null, 
    "DateCr‌​eated":"2012-03-12T19:47:54.493"}] 

響應。

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 
+0

嘗試從瀏覽器/ fiddler/...調用服務並獲取JSON並將其發佈到此處。如果沒有首先查看JSON,請不要更改您的服務中的任何內容。 – Aliostad 2012-04-17 08:37:59

+0

更多來自Fiddler.HTTP/1.1 200 OK Cache-Control:no-cache Pragma:no-cache Content-Type:application/json;字符集= UTF-8 到期日:-1 服務器:Microsoft-IIS/7.0 X-ASPNET-版本:4.0.30319 X供電,通過:ASP.NET 日期:星期二,2012年4月17日16點20: 56 GMT Content-Length:151 [{「AlbumPK」:「f09d14cf-3bab-44c8-b614-2b7cf728efd4」,「Name」:「Colorado」,「UserName」:「emorin」,「ParentAlbumFK」:null, 「DateCreated」:「2012-03-12T19:47:54.493」}] – Ernie 2012-04-17 16:23:06

+0

那麼第一個XML是什麼?哪一個是正確的?請更新問題,不要使用評論。 – Aliostad 2012-04-17 16:27:30

回答

0

看來你的服務器是在分塊編碼發送數據,或許MonoDroid的是有問題的理解分塊編碼。嘗試在IIS中關閉它。

+0

在我的單聲道應用程序中,我將標題設置爲json。我會在小提琴手中嘗試。 – Ernie 2012-04-17 19:28:22

+0

@Ernie看看更新。 – Aliostad 2012-04-17 21:05:16

+0

我看着關掉它,但我的託管公司沒有這個選擇。有趣的是我嘗試在本地部署它,並從小提琴手的相同結果關於被分塊。即使是卡西尼,我也會得到同樣的結果。環顧網絡,我發現一篇文章說Web Api沒有設置內容長度,所以我的猜測是這導致了大塊頭。 – Ernie 2012-04-18 03:28:47