[問題] 關於http的connection
板上各位大大好,
我這幾天寫android的時候遇到一個很神秘的問題,
事情是這樣的:
有一支我一兩年多以前寫的程式,
會在呼叫Service之後,背景執行HttpURLConnection,
POST到我本機或線上伺服器API取得資料,
一兩年以前這個程式的這部分都沒遇到過什麼問題。
這幾天為了改版這個程式,
程式在一些地方新增了功能,
而網路連線的部分完全沒有改動過,
但是所有的API都只有第一次會成功得到200(OK),
第二個呼叫的API都一定會獲得400(Bad Request)
ex:
API-1(200) -> API-2(400) -> API-1(400)
API-1(200) -> API-1(400) -> API-2(400)
API-2(200) -> API-1(400) -> API-2(400)
另外,如果使用HTTPS的話則是都會成功
只有HTTP會遇到這個狀況
我上網查了許久
發現stack overflow竟然七年以前就有人問過類似的問題了
https://goo.gl/JXM9vs
裡面推薦數較多的兩個方法
1. System.setProperty("http.keepAlive", "false");
沒有用
2. conn.setRequestProperty("connection", "close");
這個則成功解決了我的問題
我想問的是
我以為conn.disconnect();就應該可以斷開連線了
為什麼還需要set preoerty connection = close
是我弄錯什麼了嗎?或是裡面有什麼特殊機制?
另外,如果這個問題很早以前就有
我之前怎麼都沒遇到過
是sdk版本的影響嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.224.89.111
※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1516290185.A.7DA.html
→
01/19 00:43,
6年前
, 1F
01/19 00:43, 1F
→
01/19 00:44,
6年前
, 2F
01/19 00:44, 2F
→
01/19 00:46,
6年前
, 3F
01/19 00:46, 3F
→
01/19 00:47,
6年前
, 4F
01/19 00:47, 4F
→
01/19 00:48,
6年前
, 5F
01/19 00:48, 5F
→
01/19 00:48,
6年前
, 6F
01/19 00:48, 6F
→
01/19 00:48,
6年前
, 7F
01/19 00:48, 7F
感謝回答 聽起來感覺很像是android或server的bug @@"
※ 編輯: Morshues (111.246.39.95), 01/19/2018 10:43:15
AndroidDev 近期熱門文章
PTT數位生活區 即時熱門文章