微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用代理在vb.NET中调用Slack API

尝试通过代理后面的vb.NET中的应用程序调用Slack API.但是,我没有.NET的专业知识,所以它在某种程度上超出了我的联盟.

这是代码的一部分:

Private Function GetResponseFromPostRequest(ByVal url As String,ByVal variables As String) As String
    Dim content As String

    Dim postData() As Byte = Encoding.GetEncoding("utf-8").GetBytes(variables)
    Dim req As HttpWebRequest = CType(WebRequest.Create(url),HttpWebRequest)
    Dim proxyObject As New WebProxy("http://thisismyproxy:thisismyport")

    req.Proxy = proxyObject
    req.Method = "POST"

    req.ContentType = "application/json"
    req.ContentLength = postData.Length

    Dim postStream As Stream = req.GetRequestStream()
    postStream.Write(postData,postData.Length)
    postStream.Close()

    Using res As HttpWebResponse = CType(req.GetResponse(),HttpWebResponse)
        Using receiveStream As Stream = res.GetResponseStream()
            Dim readStream As New StreamReader(receiveStream,Encoding.GetEncoding("utf-8"))
            content = readStream.ReadToEnd()
        End Using
    End Using

    Return content

End Function

然后这样称呼它:

GetResponseFromPostRequest("https://hooks.slack.com/services/....","{'text':'" & slackTitle & "'}")

没有代理,它确实有效.使用代理,我有以下错误

连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机无法响应… … api …

如果我尝试在postman应用程序中发布HTTP帖子并使用上面的代理,它就可以了.我想问题应该在vb.net代码上.

解决方法

可能会弄错,但我很确定您的代理地址是错误的.您需要将端口作为Int单独传递到地址URL.即

Dim proxyObject As New WebProxy("http://thisismyproxy",thisismyport)

thisismyport是您需要的端口号的Int值.

见:https://msdn.microsoft.com/en-us/library/xfsh37cx(v=vs.110).aspx

根据您的评论我想象一下,您为代理指定的URL是;

a)不正确,或……

b)无法通过DNS解决

要修复,请确保URL“http://thisismyproxy”100%正确 – 同时尝试输入代理服务器的IP地址而不是域名.例如

Dim proxyObject As New WebProxy("http://192.168.x.x",8080)

这会解决问题吗?如果没有,你可以从机器到达(ping)等代理服务器 – 也就是说 – 你能解决这种主义吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐