在https的鏈結中vb使用post提交xml資料

2021-07-09 07:03:40 字數 3389 閱讀 4436

由於工作需要,需要vb提交xml資料到伺服器上,所以,需要找到乙個好的方法。

之前有**使用了msxml2.xmlhttp物件進行xml資料取得,而且鏈結是https形式的,於是就參照**提交,寫了下面這麼乙個函式,來進行操作

但是,提交總是失敗,在下面的這句**就被中斷,一直找不到原因。

突然想到http協議和https協議是不同的,可能在提交資料時有差異,猜測msxml2.xmlhttp物件應該不支援https,經過尋找找到另乙個物件winhttp.winhttprequest,於是有了下面的**

執行了上面的**之後程式正常結束,但是遠端的伺服器中的資料沒有變化,檢視了xmlhttps.status之後發現,提示沒有許可權,嗯,伺服器那邊需要使用者名稱和密碼驗證的,這邊沒有設定登入使用者名稱和密碼,於是加了一句

使用者名稱

", "密碼"

執行了**之後發現,xml物件的資料被正常提交。

總結:1. msxml2.xmlhttp物件不能提交https資料到伺服器上

2. winhttp.winhttprequest物件需要顯式的設定使用者名稱和密碼,在msxml2.xmlhttp物件使用的過程中,沒有登入的話,會彈出使用者名稱和密碼輸入框,而winhttp.winhttprequest物件沒有,直接提交資料後,提示沒有許可權

其它物件也可以達到https提交的效果:

使用者名稱", "密碼"

5 serverxml.setrequestheader "

content-type

", ""6

serverxml.send document.xml

7 ...

注:winhttp.winhttprequest物件需要新增microsoft winhttp services, version 5.1元件的引用

msxml2.xmlhttp和msxml2.serverxmlhttp需要新增microsoft msxml元件的引用

VB控制項在C 中的使用

第一步 在c 的工具條右擊,在右鍵選單上單擊 選擇項 選項,如下圖 第二步 在com元件中,選中所需的控制項即可 這點和vb中完全一樣 這時候,com控制項和c 控制項就一樣使用了。但是,vb中的一些特有的命令,如動態陣列和c 有很大不同,請參考如下 vb dim lngdata as long c...

VB控制項在C 中的使用

第一步 在c 的工具條右擊,在右鍵選單上單擊 選擇項 選項,如下圖 第二步 在com元件中,選中所需的控制項即可 這點和vb中完全一樣 這時候,com控制項和c 控制項就一樣使用了。但是,vb中的一些特有的命令,如動態陣列和c 有很大不同,請參考如下 vb dim lngdata as long a...

VB控制項在C 中的使用

第一步 在c 的工具條右擊,在右鍵選單上單擊 選擇項 選項,如下圖 第二步 在com元件中,選中所需的控制項即可 這點和vb中完全一樣 這時候,com控制項和c 控制項就一樣使用了。但是,vb中的一些特有的命令,如動態陣列和c 有很大不同,請參考如下 vb dim lngdata as long a...