PayPal Get Access Token vb.net请求被中止:无法创建SSL/TLS安全通道

PayPal Get Access Token vb.net请求被中止:无法创建SSL/TLS安全通道,vb.net,ssl,paypal-sandbox,Vb.net,Ssl,Paypal Sandbox,关于调用PayPal的授权访问令牌API,我有几个问题,下面是我的代码: Public Function testAPI() As String Dim data As StringBuilder Dim byteData() As Byte Dim request As HttpWebRequest Dim response As HttpWebResponse = Nothing Dim postStream As Stream = Nothing

关于调用PayPal的授权访问令牌API,我有几个问题,下面是我的代码:

Public Function testAPI() As String
    Dim data As StringBuilder
    Dim byteData() As Byte
    Dim request As HttpWebRequest
    Dim response As HttpWebResponse = Nothing
    Dim postStream As Stream = Nothing
    Dim reader As StreamReader
    Dim Result As String = ""
    request = DirectCast(WebRequest.Create("https://api.sandbox.paypal.com/v1/oauth2/token"), HttpWebRequest)
    request.Headers.Add("Username", "XXXXXXXXXX")
    request.Headers.Add("Password", "XXXXXXXXXX")
    data = New StringBuilder("{""grant_type"":""client_credentials""}")
    request.ContentType = "application/x-www-form-urlencoded"
    request.Method = WebRequestMethods.Http.Post
    byteData = UTF8Encoding.UTF8.GetBytes(data.ToString())
    request.ContentLength = byteData.Length
    postStream = request.GetRequestStream()
    postStream.Write(byteData, 0, byteData.Length)
    If Not postStream Is Nothing Then postStream.Close()
    response = DirectCast(request.GetResponse(), HttpWebResponse)
    reader = New StreamReader(response.GetResponseStream())
    Result = reader.ReadToEnd().ToString
    Return Result
End Function
  • 我是否以正确的方式传递用户名和密码
  • 我是否以正确的方式传递“授权类型”:“客户端凭据”
  • 我不断收到错误:请求被中止:无法创建SSL/TLS安全通道。我尝试添加一些从谷歌搜索的代码:

    ServicePointManager.Expect100Continue = True
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
    request.ProtocolVersion = HttpVersion.Version11
    

  • 但它仍然失败并返回相同的错误消息。请帮助。

    我不熟悉PayPal API,但只是尝试一下,如果您这样做会发生什么:
    ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls或SecurityProtocolType.Tls11或SecurityProtocolType.Tls12
    ?另外,我假设您在调用
    WebRequest.Create()
    之前设置了这些值?如果仍然不起作用,您可能还想尝试在他们的问题追踪器上发布:哦,是的!非常感谢。我没有将这些代码放在WebRequest.Create之前。但现在我遇到了另一个错误,即401未经授权,因此我认为我的用户名和密码或授权类型没有正确通过。