如何解决使用 Xero oauth2 运行 listener.GetContextAsync 时程序停止
我的程序在运行时拒绝继续
Dim context As Object = Await listener.GetContextAsync()
但继续运行我从另一个表单调用 oauth2() 的下一行。它跳过运行以获取此函数中的 Accesstoken 的行。它将显示 Xero organisation selection window,但显示回调 URL 无法在我的网络浏览器上显示。
如果我使用 Postman 来测试这个,它会在 Xero 组织选择窗口被点击并卸载后给我一个“身份验证失败 - 无法完成身份验证”错误消息。
欢迎任何帮助。
公共异步函数 oauth2() As Task(Of Boolean)
Dim redirectUri As String = String.Format(callbackurl)
Dim listener = New HttpListener()
listener.Prefixes.Add(redirectUri)
Try
listener.Start()
stopListening = False
Catch hlex As HttpListenerException
Return False
End Try
Dim urlCallBackFormat As String = WebUtility.UrlEncode(String.Format(callbackurl))
Dim url As String = "https://login.xero.com/identity/connect/authorize?response_type=code&state=OzEPHd1GSvkwx0fnJ8023A&client_id=" & xeroClientId & "&scope=offline_access%20openid%20profile%20email%20accounting.settings%20accounting.transactions&redirect_uri=" & urlCallBackFormat
Process.Start(url)
While listener.IsListening
Dim context As Object = Public Async Function oauth2() As Task(Of Boolean)
Dim redirectUri As String = String.Format(callbackurl)
Dim listener = New HttpListener()
listener.Prefixes.Add(redirectUri)
Try
listener.Start()
stopListening = False
Catch hlex As HttpListenerException
Return False
End Try
Dim urlCallBackFormat As String = WebUtility.UrlEncode(String.Format(callbackurl))
Dim url As String = "https://login.xero.com/identity/connect/authorize?response_type=code&state=OzEPHd1GSvkwx0fnJ8023A&client_id=" & xeroClientId & "&scope=offline_access%20openid%20profile%20email%20accounting.settings%20accounting.transactions&redirect_uri=" & urlCallBackFormat
Process.Start(url)
While listener.IsListening
Dim context As Object = Await listener.GetContextAsync()
Try
Await ProcessRequestAsync(context)
stopListening = True
Catch ex As Exception
Console.WriteLine("# EXCEPTION # " + ex.StackTrace)
End Try
If stopListening = True Then listener.Stop()
End While
Try
Await ProcessRequestAsync(context)
stopListening = True
Catch ex As Exception
Console.WriteLine("# EXCEPTION # " + ex.StackTrace)
End Try
If stopListening = True Then listener.Stop()
End While
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。