基本信息
源码名称:VB Winsock HTTP POST GET表单提交
源码大小:4.93KB
文件格式:.rar
开发语言:ASP
更新时间:2019-10-04
友情提示:(无需注册或充值,赞助后即可获取资源下载链接)
嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 4 元×
微信扫码支付:4 元
×
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
源码介绍
Option Explicit 'Download by http://www.NewXing.com ' we set this to true whil a connection is established Private blnConnected As Boolean ' this function sends the HTTP request Private Sub cmdSend_Click() Dim eUrl As URL Dim strMethod As String Dim strData As String Dim strPostData As String Dim strHeaders As String Dim strHTTP As String Dim X As Integer strPostData = "" strHeaders = "" strMethod = cboRequestMethod.List(cboRequestMethod.ListIndex) If blnConnected Then Exit Sub ' get the url eUrl = ExtractUrl(txtUrl.Text) If eUrl.Host = vbNullString Then MsgBox "Invalid Host", vbCritical, "ERROR" Exit Sub End If ' configure winsock winsock.Protocol = sckTCPProtocol winsock.RemoteHost = eUrl.Host If eUrl.Scheme = "http" Then If eUrl.Port > 0 Then winsock.RemotePort = eUrl.Port Else winsock.RemotePort = 80 End If ElseIf eUrl.Scheme = vbNullString Then winsock.RemotePort = 80 Else MsgBox "Invalid protocol schema" End If ' build encoded data the data is url encoded in the form ' var1=value&var2=value strData = "" For X = 0 To txtVariableName.Count - 1 If txtVariableName(X).Text <> vbNullString Then strData = strData & URLEncode(txtVariableName(X).Text) & "=" & _ URLEncode(txtVariableValue(X).Text) & "&" End If Next X If eUrl.Query <> vbNullString Then eUrl.URI = eUrl.URI & "?" & eUrl.Query End If ' check if any variables were supplied If strData <> vbNullString Then strData = Left(strData, Len(strData) - 1) If strMethod = "GET" Then ' if this is a GET request then the URL encoded data ' is appended to the URI with a ? If eUrl.Query <> vbNullString Then eUrl.URI = eUrl.URI & "&" & strData Else eUrl.URI = eUrl.URI & "?" & strData End If Else ' if it is a post request, the data is appended to the ' body of the HTTP request and the headers Content-Type ' and Content-Length added strPostData = strData strHeaders = "Content-Type: application/x-www-form-urlencoded" & vbCrLf & _ "Content-Length: " & Len(strPostData) & vbCrLf End If End If ' get any aditional headers and add them For X = 0 To txtHeaderName.Count - 1 If txtHeaderName(X).Text <> vbNullString Then strHeaders = strHeaders & txtHeaderName(X).Text & ": " & _ txtHeaderValue(X).Text & vbCrLf End If Next X ' clear the old HTTP response txtResponse.Text = "" ' build the HTTP request in the form ' ' {REQ METHOD} URI HTTP/1.0 ' Host: {host} ' {headers} ' ' {post data} strHTTP = strMethod & " " & eUrl.URI & " HTTP/1.0" & vbCrLf strHTTP = strHTTP & "Host: " & eUrl.Host & vbCrLf strHTTP = strHTTP & strHeaders strHTTP = strHTTP & vbCrLf strHTTP = strHTTP & strPostData txtRequest.Text = strHTTP winsock.Connect ' wait for a connection While Not blnConnected DoEvents Wend ' send the HTTP request winsock.SendData strHTTP End Sub Private Sub winsock_Connect() blnConnected = True End Sub ' this event occurs when data is arriving via winsock Private Sub winsock_DataArrival(ByVal bytesTotal As Long) Dim strResponse As String winsock.GetData strResponse, vbString, bytesTotal strResponse = FormatLineEndings(strResponse) ' we append this to the response box becuase data arrives ' in multiple packets txtResponse.Text = txtResponse.Text & strResponse End Sub Private Sub winsock_Error(ByVal Number As Integer, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, CancelDisplay As Boolean) MsgBox Description, vbExclamation, "ERROR" winsock.Close End Sub Private Sub winsock_Close() blnConnected = False winsock.Close End Sub ' this function converts all line endings to Windows CrLf line endings Private Function FormatLineEndings(ByVal str As String) As String Dim prevChar As String Dim nextChar As String Dim curChar As String Dim strRet As String Dim X As Long prevChar = "" nextChar = "" curChar = "" strRet = "" For X = 1 To Len(str) prevChar = curChar curChar = Mid$(str, X, 1) If nextChar <> vbNullString And curChar <> nextChar Then curChar = curChar & nextChar nextChar = "" ElseIf curChar = vbLf Then If prevChar <> vbCr Then curChar = vbCrLf End If nextChar = "" ElseIf curChar = vbCr Then nextChar = vbLf End If strRet = strRet & curChar Next X FormatLineEndings = strRet End Function Private Sub Form_Load() cboRequestMethod.ListIndex = 0 blnConnected = False End Sub ' the code below has nothing to do with winsock or HTTP and deals only with the ' display and manipulation of controls Private Sub cmdMoreHeaders_Click() Dim intNext As Integer Dim lngTop As Long ' find the next control intNext = txtHeaderName.Count ' find the next top lngTop = txtHeaderName(intNext - 1).Top txtHeaderName(intNext - 1).Height 80 ' add new controls Load lblHeaderName(intNext) Load txtHeaderName(intNext) Load lblHeaderValue(intNext) Load txtHeaderValue(intNext) With lblHeaderName(intNext) .Top = lngTop .Left = lblHeaderName(intNext - 1).Left .Visible = True End With With txtHeaderName(intNext) .Top = lngTop .Left = txtHeaderName(intNext - 1).Left .Visible = True .Text = "" End With With lblHeaderValue(intNext) .Top = lngTop .Left = lblHeaderValue(intNext - 1).Left .Visible = True End With With txtHeaderValue(intNext) .Top = lngTop .Left = txtHeaderValue(intNext - 1).Left .Visible = True .Text = "" End With ' set the new height of the controls container pbxHeaders.Height = txtHeaderName(intNext).Top txtHeaderName(intNext).Height 80 ' check if we should activate the scroll bar, ie: the outerbox ' is higher than the inner box If pbxHeaders.Height > pbxOHeaders.Height Then With vsbHeaders .Enabled = True .SmallChange = txtHeaderName(intNext).Height .LargeChange = pbxOHeaders.Height .Min = 0 .Max = pbxHeaders.Height - pbxOHeaders.Height .Value = .Max End With End If End Sub Private Sub cmdMoreVariables_Click() Dim intNext As Integer Dim lngTop As Long ' find the next control intNext = txtVariableName.Count ' find the next top lngTop = txtVariableName(intNext - 1).Top txtVariableName(intNext - 1).Height 80 ' add new controls Load lblVariableName(intNext) Load txtVariableName(intNext) Load lblVariableValue(intNext) Load txtVariableValue(intNext) With lblVariableName(intNext) .Top = lngTop .Left = lblVariableName(intNext - 1).Left .Visible = True End With With txtVariableName(intNext) .Top = lngTop .Left = txtVariableName(intNext - 1).Left .Visible = True .TabIndex = txtVariableName(intNext - 1).TabIndex 2 .Text = "" End With With lblVariableValue(intNext) .Top = lngTop .Left = lblVariableValue(intNext - 1).Left .Visible = True End With With txtVariableValue(intNext) .Top = lngTop .Left = txtVariableValue(intNext - 1).Left .TabIndex = txtVariableValue(intNext - 1).TabIndex 2 .Visible = True .Text = "" End With ' set the new height of the controls container pbxVariables.Height = txtVariableName(intNext).Top txtVariableName(intNext).Height 80 ' check if we should activate the scroll bar, ie: the outerbox ' is higher than the inner box If pbxVariables.Height > pbxOVariables.Height Then With vsbVariables .Enabled = True .SmallChange = txtVariableName(intNext).Height .LargeChange = pbxOVariables.Height .Min = 0 .Max = pbxVariables.Height - pbxOVariables.Height .Value = .Max End With End If End Sub Private Sub vsbHeaders_Change() pbxHeaders.Top = 0 - vsbHeaders.Value End Sub Private Sub vsbHeaders_Scroll() pbxHeaders.Top = 0 - vsbHeaders.Value End Sub Private Sub vsbVariables_Change() pbxVariables.Top = 0 - vsbVariables.Value End Sub Private Sub vsbVariables_Scroll() pbxVariables.Top = 0 - vsbVariables.Value End Sub