2013年11月23日

GPRS, 中國移動和 ASIHTTPRequest

最近遇到一個很奇怪的問題,是來自客戶的回饋。

我們寫了一個軟體,可以用 iphone 傳圖片到 Server 上,測試的時候客戶發現他們在上傳的階段就產生了不明原因的錯誤,造成上傳圖片失敗。

這種失敗只會發生在使用中國移動的、中國連通的 gprs 下(中國電信沒測試,感覺應該也不行),在 wifi, 3G 下都是正常的,所以回去追自己的代碼。

Server 端的代碼顯示是因為 Client 這邊傳輸到一半就自己斷線了,所以 Server 完全沒有收到圖,而 xcode 的追蹤則是 Post 的 progressView 進度可以到100%,但不會調用requestDidSuccess:request,所以追進了我們使用的 ASIHTTPRequest 這個類別,看到了下面的代碼


#if TARGET_OS_IPHONE
// When YES, bandwidth will be automatically throttled when using WWAN (3G/Edge/GPRS)
// Wifi will not be throttled
static BOOL shouldThrottleBandwidthForWWANOnly = YES;

預設值會是 no, 也就是不使用 WWAN 流量控制,把他改成 Yes 之後,軟體就可以在 gprs 下傳比較大的圖片了。

終於~世界又和平了。

沒有留言:

再見了 Evernote.

大概是去年底開始,我常常用的一個雲筆記本軟體 Evernote 就限制了我的新增記事,後來才發現他限制我們免費仔的記事數字停在了 50 篇。