2012-02-03 54 views
2

我正在用RestSharp(在windows phone 7.1客戶端上)發出POST請求。我將字符串發送到請求主體中的服務。看起來服務被成功調用,它返回適當的值(整數),但響應對象爲空:使用RestSharp POST請求時RestResponse爲空

client.ExecuteAsync<T>(request, (response) => { 
    data = response.Data; // response is null in debugger 
}); 

我不明白爲什麼會這樣。

+0

您是否監控過實際的請求(使用Fiddler-或類似的方法)以確認是否有實際的請求正在進行以及回覆? – 2012-02-03 11:19:10

回答

0

<T>對於該調用不是有效的值。我不確定那甚至會在那裏建立,除非你用通用方法包裝它。

此外,響應作爲純文本返回?什麼是內容類型返回?很可能,只需使用ExecuteAsync(request, callback)而不使用通用參數,並從response.Content中獲取響應正文的字符串中的數據。 response.Data適用於自動反序列化的XML或JSON(或自定義)響應,如果您使用泛型方法重載指定要反序列化的類型。

+0

對於WP,RestSharp中沒有Execute方法。但我將其更改爲client.ExecuteAsync沒有。響應對象仍爲空,我無法訪問其屬性。 Web服務返回一個整數值,我應該從響應對象中獲取它(可能通過Content屬性,如您所建議的那樣)。 – Aliens 2012-02-03 01:36:03

+0

對不起,引用錯誤的方法,更新了我的答案。 – 2012-02-03 01:49:14

+0

如果響應對象爲null,那麼在ErrorException中是否有任何內容? – 2012-02-03 01:49:29

0

這似乎是RestSharp異步調用正在進行的問題 - 對於HTTP傳輸錯誤,ErrorException對象無用(返回null)。如果它返回的是除HttpStatusCode.OK以外的任何內容,請檢查StatusCode屬性。 StatusDescription並不是非常有用,因爲它不匹配來自服務器響應負載的完整狀態消息。

相關問題