最近想學習用xmlhttp提交表。
所以用搜狐的個人資料修改頁面做練習。
步驟如下;
先createobject("msxml2.xmlhttp")
然后 .open "post",sohuUrl,false ' sohuUrl 是我用httpfox獲取的。
然后 .setrequestheader .....
.setrequestheader .....
..... ’ 初學,不知道那些可以忽略,全設定了,包括cookie、referer等等
然后 .send(postData ) ' 提交的資料就是姓名、性別什么的,知道中文要編碼,因為練習所以全用的英文。
執行以后,頁面沒有任何改變。
然后,我嘗試 .open “post” ,sohuUrl &name=dfdsf,false ’直接用網址傳遞引數
結果成功了。
請問,這個到底應該如何寫啊???
uj5u.com熱心網友回復:
postData="https://bbs.csdn.net/topics/name=dfdsf"
.send(postData)
uj5u.com熱心網友回復:
.open "post",sohuUrl,false這里的POST必須用大寫才行
uj5u.com熱心網友回復:
我就是這么寫的。
uj5u.com熱心網友回復:
大寫還是不行。
uj5u.com熱心網友回復:
附上代碼。Public Sub postDataTest()
Dim http As Object
Dim myData As String
Set http = CreateObject("Msxml2.XMLHTTP")
myData = "introduction=fsdfs"
With http
.Open "POST", "http://i.sohu.com/profile/home/basic.htm?_sub=post", False
' .setrequestheader "(Request-Line)", "POST /profile/home/basic.htm?_sub=post HTTP/1.1"
.setrequestheader "Host", "i.sohu.com"
'.setrequestheader "User-Agent", "Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0"
.setrequestheader "accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
.setrequestheader "Accept-Language", "zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3"
.setrequestheader "accept-encoding", "gzip, deflate"
.setrequestheader "Referer", "http://i.sohu.com/profile/home/basic.htm?from=self"
.setrequestheader "Cookie", "spsession=MTU4NTc3fC0xfDEzODAzMjkzNDN8d3V4aW5ndGlhbnhpYTI=-hAP7VtdzxgwNNJ+b/le2i5D6aDg=; domain=.sohu.com; path=/; HttpOnly"
.setrequestheader "Connecion", "keep-alive"
.setrequestheader "contenet-type", "application/x-www.form-urlencoded"
.setrequestheader "Content-Length", Len(myData)
.send (myData)
' Do While Not .readyState = 4
' DoEvents
' Loop
'Debug.Print .responseText
End With
End Sub
uj5u.com熱心網友回復:
你的 url 中有引數 _sub=post,然后 myData 中又是引數 introduction=fsdfs,沒見過這樣的用法,合并到 myData 中試試。setrequestheader 中 Content-Length 可以省略,而且你只算了一個引數的長度,反而錯了。
uj5u.com熱心網友回復:
_sub=post這個是我用抓包工具抓到的網址。
我把它放到myData里還是不行
Content-Length我也刪了。
uj5u.com熱心網友回復:
服務端取得幾個引數?不會是你的 Session 超時了吧。
uj5u.com熱心網友回復:
Senssion超時應該不可能,我在網址添加引數 &name=djfkjdk ,這樣可以成功上傳
uj5u.com熱心網友回復:
Post的時候加個這樣的頭如果還不行的話會不會你電腦有問題,我原來電腦就這樣,IIS里處理不了Post的內容,后來電腦重裝了
XML.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
uj5u.com熱心網友回復:
你 5 樓代碼沒有 name 引數,不具備可比性。
uj5u.com熱心網友回復:
用網址傳遞&introduction=fsdfs 這個引數可以
但是用send()方法就失敗了。
uj5u.com熱心網友回復:
Post的時候加個這樣的頭
如果還不行的話會不會你電腦有問題,我原來電腦就這樣,IIS里處理不了Post的內容,后來電腦重裝了
XML.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
反正頭訊息我都設定過了。
實在是沒有頭緒啊。
真的不行,那沒辦法了,試試重裝了。
uj5u.com熱心網友回復:
先不要用代碼來提交,手工做個頁面,在頁面里提交試試,當時我的電腦手工提交都不行。
服務器端是在你電腦上嗎?
uj5u.com熱心網友回復:
你QQ多少,我幫你寫個吧,剛今天幫臺灣人寫了一個POST工具我們做了10多年軟體,這方面技術成熟
uj5u.com熱心網友回復:
你QQ多少,我幫你寫個吧,剛今天幫臺灣人寫了一個POST工具
我們做了10多年軟體,這方面技術成熟
謝謝,我的qq是342725434
uj5u.com熱心網友回復:
你QQ多少,我幫你寫個吧,剛今天幫臺灣人寫了一個POST工具
我們做了10多年軟體,這方面技術成熟
謝謝,我的qq是342725434
幫忙寫就算了,系統在內網里。你應該接觸不到。
我個人也僅僅是為了提高作業效率才自學的編程。
如果可以,給我看下post部分的源代碼,讓我參考下可以嗎?
uj5u.com熱心網友回復:
你在開頭說:然后 .send(postData ) ' 提交的資料就是姓名、性別什么的,知道中文要編碼,因為練習所以全用的英文。
請問怎樣在請求路徑里面發送中文引數啊?我現在遇到這樣的問題了,怎樣解決傳遞中文引數的問題啊,謝謝!
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/125061.html
標籤:VBA
上一篇:客戶端無法建立連接
