首页 > 解决方案 > 在 VB.Net 中通过 RestSharp 发布时如何忽略证书验证

问题描述

我正在使用以下代码尝试在 VB.Net 中使用 RestSharp 访问 API:

    Dim myClient As New RestClient(*https api website url*)
    Dim myRequest As New RestRequest(Method.POST)
    myRequest.AddHeader("Content-Type", "application/json")
    myRequest.AddCookie("JSESSIONID", "568E16300DB90F7CEC5A7882C66D3684")
    myRequest.AddCookie("sessionExpiry", "3600000") ' 1 Hour
    myRequest.AddParameter("undefined", "{\""username\"":\""*myUsername*\"",\""password\"":\""*myPassword*\"",\""clientInformation\"":{\""userAgent\"":\""Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36\"",\""height\"":1440,\""width\"":2560,\""os\"":\""Win32\""},\""application\"":\""p4app\""}", ParameterType.RequestBody)
    Dim myResponse As IRestResponse
    myResponse = myClient.Execute(myRequest)
    MsgBox(myResponse.Content)

它一直给我错误'“消息”:“登录失败 - 无效的登录请求”'

有人告诉我我需要忽略 SSL 证书,但我似乎找不到使用 RestSharp 的方法。有任何想法吗?

标签: vb.netsslhttpsrestsharp

解决方案


我不知道 RestSharp 在下面使用什么,但它可能会像这样工作:

进口:

Imports System.Net
Imports System.Net.Security
Imports System.Security.Cryptography.X509Certificates

注册一个证书验证器:

    Dim myHandler As RemoteCertificateValidationCallback =
        Function(sender As Object, certificate As X509Certificate, chain As X509Chain, sslPolicyErrors As SslPolicyErrors) As Boolean
            Return True
        End Function

    ServicePointManager.ServerCertificateValidationCallback = myHandler

推荐阅读