2012-11-22 37 views
3

我試圖更新我的應用程序以使用AFNetworking,但需要使用的webservice返回JSON作爲文本/ html,當我嘗試使用AFJSONRequestOperation時打破:AFJSONRequestOperation失敗,因爲webservice返回內容類型爲text/html的JSON

Expected content type {(
    "text/json", 
    "application/json", 
    "text/javascript" 
)}, got text/html 

有無論如何覆蓋AFNetworking這個,所以我可以接受文本/ HTML?

+0

時是否自己或他人的,你應該努力確保他們改變了內容類型爲正確的類型的服務 – jere

回答

13

是的,它是可能的,AFNetworking支持添加上可接受的內容類型。在你AFHTTPClient子類的init()方法執行以下操作:

[AFJSONRequestOperation addAcceptableContentTypes:[NSSet setWithObjects:@"text/html", nil]]; 

我曾與我的應用程序同樣的問題,這使得它的工作。

0

我不認爲你應該走那條路,除非你完全知道什麼框架innerly一樣。根據經驗,我可以告訴你可能會打破很多事情,如果你修補了很多,你必須從那時起保留你自己的獨立分支,失去了更新到AFNetworking最新版本的好處未來,從而獲得最新的錯誤修正和功能,除非您將它們集成到您的分支中。

如果你只是希望它爲現在的工作,不夠公平,繼續嘗試,如果它的工作原理(我懷疑)。我相信AFNetworking的其他部分會期望內容類型爲「text/html」,並且通過在不應該是你的部分中添加另一部分會產生衝突,這將會要求您補丁越來越多直到最後一刻。

老實說,試圖改變內容鍵入您的服務器發送和他們應該做做事。

另一種方法是設置在你的應用程序,檢索到的內容,並將其傳遞到用正確的內容類型AFNetworking「代理」(像在手機本地運行一個小型服務器)。不過,至少你不會自己修改框架,這是最後一件事情。

相關問題