2016-09-13 245 views
1

當按下按鈕時,我使用NSURLSession將數據從我的應用程序發佈到我的服務器。我可以成功地將數據發送到我的服務器,並在前兩次插入到數據庫中,但是之後的任何時間,請求都會超時。NSURLSession - 請求超時

我試過:更改會話配置(每個主機的連接,timeoutInterval等),會話配置類型,更改數據發佈的方式。

有沒有人見過這種行爲之前,知道我可以如何解決這個問題?

或者它是服務器的問題?我以爲我的服務器最初是關閉的。我無法連接到它,也無法加載某些頁面。但是,它只是對我而言。重新啓動我的調制解調器後,我可以連接回服務器。我沒有任何問題連接到phpMyAdmin。

+1

Show.Your.Code。 – vadian

回答

0

如果問題在路由器重新啓動後重現,那麼我會考慮Apple的強制門戶測試服務器當時是否關閉。

否則,我的懷疑是它是一個網絡問題,而不是任何特定於您的應用程序。

  • 很有可能您成功加載的頁面來自緩存。

  • 因爲您說重新啓動調制解調器解決了問題,這可能意味着您的調制解調器停止響應DHCP請求或DNS查找(無論是爲您的域還是爲強制門戶測試域之一)。

  • 也有可能你有一個丟包問題,並且它變得越糟,你的路由器啓動和運行的時間越長。這可能會導致一些請求完成而另一些請求失敗。

  • 偶爾,我看到了奇怪的行爲,當ICMP被阻止過於激進時,與此類似。

  • 當有狀態的防火牆失去主意並忘記狀態時,我也看到了這一點。

  • 這也可能是由於HTTP/HTTPS連接超過服務器放棄和斷開連接的點,如果您的防火牆阻止了指示連接已被遠程端關閉的數據包。

但是沒有數據包跟蹤,沒有辦法確定。爲了得到一個:

  • 如果您的網絡代碼是在OS X上運行,你可以做到這一點與您的網絡接口tcpdump的。

  • 如果你在iOS上這樣做,你可以通過有線以太網連接你的計算機,通過Wi-Fi實現網絡共享,在橋接接口指向tcpdump,並將iPhone指向該Wi-Fi網絡。

無論哪種方式,這可以告訴你,如果有請求,走出去是再也回不來了,更重要的是,他們是什麼類型的請求,誰負責回答他們。一旦獲得了這些信息,如果問題的根源不明顯,則發佈包跟蹤的鏈接,我們將添加更多建議。