Step.1 引用相關的命名空間
Imports System
Imports System.IO
Imports System.Net
Imports System.Text
Step.2 建立URL & 傳送
' 使用URL建立一個可以接收POST的請求
Dim request As WebRequest = WebRequest.Create("http://www.contoso.com/PostAccepter.aspx ")
' 設定這個請求的方法屬性 (Method property) 為POST
request.Method = "POST"
' 建立POST數據並將其轉換為 byte array(編碼為UTF8)
Dim postData As String = "This is a test that posts this string to a Web server."
Dim byteArray As Byte() = Encoding.UTF8.GetBytes(postData)
' 為 WebRequest 設定內容類型 (ContentType)
request.ContentType = "application/x-www-form-urlencoded"
' 為 WebRequest 設定內容長度 (ContentLength)
request.ContentLength = byteArray.Length
' 取得請求串流
Dim dataStream As Stream = request.GetRequestStream()
' 將資料寫入資料串流中
dataStream.Write(byteArray, 0, byteArray.Length)
' 關閉串流物件
dataStream.Close()
Step.3 取得回應 & 讀取
' 取得回應.
Dim response As WebResponse = request.GetResponse()
' 顯示狀態
Console.WriteLine(CType(response, HttpWebResponse).StatusDescription)
' 取得由server傳回的串流,及其內容
dataStream = response.GetResponseStream()
' 使用StreamReader開啟串流,以便讀取內容
Dim reader As New StreamReader(dataStream)
' 讀取內容
Dim responseFromServer As String = reader.ReadToEnd()
' 顯示內容
Console.WriteLine(responseFromServer)
Step.4 清理(關閉)
reader.Close()
dataStream.Close()
response.Close()
------以上是基本款,以下是簡短款------
' 建立連線物件
Dim web As New System.Net.WebClient()
' 加入連線型態
web.Headers.Add("Content-Type", "application/x-www-form-urlencoded")
' 加入傳送內容並編碼
Dim d As Byte() = System.Text.Encoding.UTF8.GetBytes("內容")
' 指定URL、傳送方式、byte array
Dim res As Byte() = web.UploadData("http://somewhere.com/search.asp", "POST", d)
' 取得回傳資料
msgbox(System.Text.Encoding.UTF8.GetString(res))
效能未比較,不過真的挺簡短的。
參考來源:
vb.Net http post
HOW TO:使用 WebRequest 類別,傳送資料
沒有留言:
張貼留言