我試圖通過改進向遠程Django服務器發送POST請求。我已經創建了一個日誌中RestAdapter用於改造,但是當我監控日誌,我注意到該請求被正確發送作爲POST:傳出POST請求的改進日誌與傳入的數據包不匹配
---> HTTP POST http://[omitted IP]/users/login_user/?username=Lucas&platform=AND&client_version=1.0
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Content-Length: 18
password=abcd12345
---> END HTTP (18-byte body)
,但它是在服務器上接收到的(根據tcpdump的),其爲GET請求。
我可以使用捲曲基本上發送相同的請求:
curl -X POST -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" -d 'password=abcd12345' "http://[omitted IP]:22800/users/login_user/?username=Lucas&platform=AND&client_version=1.0"
,並且這導致在POST請求中由服務器,它正確地處理所接收。
下面是從tcpdump的通過捲曲的POST包:
05:54:25.849761 IP [omitted IP].dsl.teksavvy.com.53549 > 192.168.0.150.22080: Flags [P.], seq 1:251, ack 1, win 229, options [nop,nop,TS val 9311380 ecr 191199659], length 250
E...;[email protected]@a./.........f9.....
.....ey.POST /users/login_user/?username=Lucas&platform=AND&client_version=1.0 HTTP/1.1
User-Agent: curl/7.32.0
Host: [omitted IP]:22800
Accept: */*
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Content-Length: 18
password=abcd12345
什麼,我覺得應該是幾乎相同的包(但不是)從tcpdump的經改造:
05:57:40.801738 IP [omitted IP].dsl.teksavvy.com.55429 > 192.168.0.150.22080: Flags [P.], seq 1:320, ack 1, win 229, options [nop,nop,TS val 45578792 ecr 191219119], length 319
[email protected]@.h...........i.....
..z(.e..GET /users/login_user/?username=Lucas&platform=AND&client_version=1.0 HTTP/1.1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
User-Agent: Dalvik/1.6.0 (Linux; U; Android 4.2.1; Galaxy Nexus Build/JOP40D)
Host: [omitted IP]:22800
Connection: Keep-Alive
Accept-Encoding: gzip
Content-Length: 18
數據包在哪裏可以更改?數據包在被應用程序層修改後是否記錄在tcpdump中?或者是改造撒謊並實際發送GET請求?有關如何進一步調試此問題的任何想法將不勝感激。
你有沒有找到解決問題的辦法?我有一個類似的改造和appengine問題.. –