zoukankan      html  css  js  c++  java
  • 关于 Http 请求可用的2个方法

    方法1:

    '参数: strMethod =(Post,Get)     strUrl=(网址)   strJson=(普通字符串或json字符串)
    Public Function PostData(ByVal strMethod As String, ByVal StrUrl As String, Optional ByVal strJson As String) As String
        Dim HTTP
       '两者只有版本的区别,能用高版本的就用高版本的MSXML2吧,建议用MSXML2 Set HTTP
    = CreateObject("MSXML2.XMLHTTP") 'Set HTTP = CreateObject("Microsoft.XMLHTTP") With HTTP .Open strMethod, StrUrl, True
         ''请求头类型 .SetRequestHeader
    "Content-Type", "application/x-www-form-urlencoded" '.setRequestHeader "Content-Type", "application/json" .send (strJson) '比较奇葩的 send 这个方法的参数 必须用括号括住,不然post请求会提示错误 End With Do While HTTP.ReadyState <> 4 DoEvents Loop PostData = HTTP.ResponseText Set HTTP = Nothing End Function

    方法2:

    '从网上找的快被转烂的方法,测试可以用,留作备用吧
    'PostData:
    '参数:
    ' StrUrl --------------------接受提交的URL
    'StrData   -----------------需要提交的数据,如JSON字串,或者登录字串 "user=xxx&psw=xxx"
    'varAsyncX  --------------设置工作模式为同步或异步,true(异步)或false(同步),通常使用异步方式。
    'CodePageX ------------对返回数据的解码编码,字符串:GB2312或UTF-8
    '==================================================
    Public Function PostData3(ByVal StrUrl As String, ByVal StrData As String, varAsyncX As Boolean, CodePageX As String) As Variant
    '  On Error GoTo ERR:'ByVal DataStic As DataEnum,
        
      Dim XMLHTTP As Object, GetBody
    '  Dim DataS As String
    '  Dim DataB() As Byte
        
      'Set XMLHTTP = CreateObject("Microsoft.XMLHTTP")
        Set XMLHTTP = CreateObject("MSXML2.XMLHTTP")
      XMLHTTP.Open "POST", StrUrl, varAsyncX 'True
    '  XMLHTTP.setRequestHeader "Content-Length", Len(PostData)
      XMLHTTP.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
      XMLHTTP.send (StrData)
        If varAsyncX Then
            Do Until XMLHTTP.ReadyState = 4
              DoEvents
            Loop
        End If
      
        GetBody = XMLHTTP.ResponseBody
        
        If Len(GetBody) > 1 Then
            GetBody = BytesToStr(GetBody, CodePageX)
            PostData3 = GetBody
        End If
      '------------------------------------释放空间
    exitX:
      Set XMLHTTP = Nothing
      Exit Function
    ERR:
      PostData3 = ""
      Resume exitX 'Next
    End Function
    
    Public Function BytesToStr(strBody, CodeBase)
    Dim objStream
    Set objStream = CreateObject("Adodb.Stream")
    With objStream
        .Type = 1
        .Mode = 3
        .Open
        .Write strBody
        .Position = 0
        .Type = 2
        .Charset = CodeBase '"GB2312" '
        BytesToStr = .ReadText
        .Close
    End With
    Set objStream = Nothing
    End Function
  • 相关阅读:
    Java8的List过滤
    docker 部署zookeeper集群
    docker部署haproxy
    安装和配置jenkins
    webpack安装和简单配置
    javascript
    javascript-模板方法模式-提示框归一化插件
    javascript-组合模式
    javascript设计模式-工厂方法模式
    javascript函数的几种写法集合
  • 原文地址:https://www.cnblogs.com/boentouch/p/12859453.html
Copyright © 2011-2022 走看看