2013-07-05 62 views
0

我正在調用API,API在C#中對另一個應用程序返回正常,但在Android中,對於我們的APP,它在5534字符後切斷,對於較小的數據集,它返回正常但在此之後它被切斷..字符串看起來是這樣的:閱讀內容標題被android切斷?

response.getFirstHeader("X-JSON").getValue()將返回該

[{"Customer":"","Name":"Fred","MI":"","ContactType":"Person","Id":8909,"IsDeleted":false,"TotalClients":0},...."MANY MORE HERE"... 
...{"Customer":"","Name":"Test Name","MI":"B","ContactType":"Person","Id" 

我得到的所有的線細,直至最後一個,你可以看到它的「身份證」卡茨關閉。當我嘗試使用較小的設置時,通過將API調用到較小的帳戶,它的罰款......它永遠不會被切斷,我會獲得預期的結果,另一方面,對於擁有大量數據的大帳戶,一切..

任何想法可能是什麼問題?

相關的代碼如下:

 DefaultHttpClient client = HttpSingleton.getThreadSafeClient(); 
     HttpGet get = new HttpGet(URL); 
     get.setHeader("Accept", "application/json"); 
     HttpResponse response = client.execute(get); 
     get.abort(); 
     printHeaders(response);    
     responseString = response.getFirstHeader("X-JSON").getValue(); 
+0

你爲什麼要在頭部返回數據? – njzk2

+0

我不知道這是一個外部API,我們沒有控制它如何被返回。 – jedgard

+0

也許它也在身體中傳遞,我要看看身體回報什麼。 – jedgard

回答

0

你將數據作爲一個HTTP頭?有數據的大小,你可以在HTTP標頭中傳遞的限制。請參見本:

Maximum on http header values?

爲什麼不響應體傳遞數據一般?

+0

我實際上是從服務器獲取數據,我試圖從給定的API中獲取數據,我們確實知道API的工作原理,它傳遞所有數據,因爲我們使用它對於iPhone而言,但我不確定爲什麼Android會削減它,我們剛剛開始致力於Android應用程序及其對我們的新應用程序。 – jedgard

+0

同意@Oscar,在標題中發送可以說是請求內容的標準並不是標準。 – dmon

+0

當應用程序服務器中的最大標題大小未達到時,您將從服務器獲取數據。 但是,一旦這個值被克服,頭被截斷,並出現意想不到的行爲... Http頭在那裏攜帶有關客戶端瀏覽器,請求的頁面,服務器和更多的信息,並請求有效載荷是代表真實請求數據。發送請求正文中的數據,而不是HTTP頭中的數據,您的問題將得到解決。 – Oscar