以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  使用HttpClient GET 访问 https服务器失败,http正常,如何解决?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=173934)

--  作者:pc005637
--  发布时间:2021/12/23 9:11:00
--  使用HttpClient GET 访问 https服务器失败,http正常,如何解决?
    Dim dt As DataTable = DataTables("默认用户")
    Dim dr As DataRow = dt.Find("ID = \'1\'")
    If dr IsNot Nothing Then
        Dim url As String = dr("url") \'接口网址
        Dim appid As String = dr("appid") \'开发者ID
        Dim appsecret As String = dr("appsecret") \'开发者密匙
        url = url & "/restoken/dstoken/get.do?a={0}&s={1}"
        Dim hc As New HttpClient(CExp(url,appid,appsecret))
        Dim ret As String = hc.GetData()
        If ret = "" Then \'如果失败,再尝试一次
            hc.GetData()
        End If
        Dim jo As JObject = JObject.Parse(ret)
        If jo("code") = "0" Then
            AccessTocken = jo("access_token")
        Else
            AccessTocken = ""
        End If
End If

2021-12-22 16:09:48.8163
基础连接已经关闭: 发送时发生错误。
   在 System.Net.HttpWebRequest.GetResponse()
   在 Foxtable.HttpClient.GetData(Boolean SkipError2)
由于远程方已关闭传输流,身份验证失败。
   在 System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
   在 System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
   在 System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest)
   在 System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
   在 System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
   在 System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
   在 System.Net.TlsStream.CallProcessAuthentication(Object state)
   在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   在 System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
   在 System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
   在 System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size)
   在 System.Net.ConnectStream.WriteHeaders(Boolean async)
[此贴子已经被作者于2021/12/23 9:13:46编辑过]

--  作者:有点蓝
--  发布时间:2021/12/23 9:21:00
--  
是不是在XP电脑运行的?XP不支持https
--  作者:pc005637
--  发布时间:2021/12/23 9:32:00
--  使用HttpClient GET 访问 https服务器失败,http正常,如何解决?
win10系统运行的。
--  作者:pc005637
--  发布时间:2021/12/23 9:34:00
--  能否让客服测试一下,用户名和密码比较敏感。
我发资料,或者远程都可以。


--  作者:有点蓝
--  发布时间:2021/12/23 9:35:00
--  
如果是公众号我一直在用没有任何问题

一些特殊接口需要加上
Net.ServicePointManager.SecurityProtocol = Net.SecurityProtocolType.Tls11

--  作者:pc005637
--  发布时间:2021/12/23 15:30:00
--  这行代码在AfterOpenProjecti添加,还是在每次调用HttpClient前添加?
如题
--  作者:有点蓝
--  发布时间:2021/12/23 17:22:00
--  
每次调用HttpClient前添加