[問題] HTTP PROTOCOL

看板C_and_CPP作者 (jimmyoic)時間11年前 (2012/12/01 18:52), 編輯推噓2(208)
留言10則, 3人參與, 最新討論串1/1
我用winsocket 寫了一個丟HTTP1.1 GET給網站 要recv 它的回應的程式 然後就try了幾個網頁去丟丟看 得到的訊息大多都是 302 收不到網站回傳網頁的原始檔 丟給www.yahoo.com 得到 200 但是回傳過來的原始檔大多停在title後面的meta name 第三項就停住了 奇怪的是偶爾會收到再多一點 我有去姑狗過查到有人家寫好的目的一樣的winsocket 程式 用他的code compile完一樣 丟給www.yahoo.com 結果得到跟我自己寫的一樣的結果 請問一下這樣是正常的嗎 ? 如果不是那問題是出在哪邊呢 http://www.zedwood.com/article/113/cpp-winsock-basic-http-connection 這是我搜尋到的 可執行CODE -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 106.1.95.104

12/01 23:59, , 1F
可能是你的網路環境有特別的設定(proxy?) 換台電腦試試
12/01 23:59, 1F

12/02 00:59, , 2F
抱歉,剛剛沒有仔細看code,是while()有問題
12/02 00:59, 2F

12/02 01:00, , 3F
應該寫while(resp_leng>0),因為tcp packet的大小不是
12/02 01:00, 3F

12/02 01:01, , 4F
1024的倍數,這樣寫會變成讀完一個封包就離開while
12/02 01:01, 4F

12/02 01:04, , 5F
還有response += string(response).substr(0, resp_leng)
12/02 01:04, 5F

12/02 01:06, , 6F
應該寫response.append(buffer, resp_leng),不然可能會
12/02 01:06, 6F

12/02 01:09, , 7F
crash
12/02 01:09, 7F

12/02 03:29, , 8F
302的話,你要的網頁在 location header field 得另外送req
12/02 03:29, 8F

12/02 03:29, , 9F
(request)
12/02 03:29, 9F

01/02 03:30, , 10F
建議去看RFC2616,或是至少先看過wiki的HTTP Statuscode
01/02 03:30, 10F
文章代碼(AID): #1GkU5yGs (C_and_CPP)