2014年3月23日 星期日

[VB]傳送資料-POST

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 類別,傳送資料

沒有留言:

張貼留言