【发布时间】:2018-07-22 09:33:14
【问题描述】:
试图通过代理后面的 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, 0, 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 & "'}")
没有代理,它确实有效。使用代理,我有以下错误:
A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond ...an api...
如果我尝试在邮递员应用程序中发布 HTTP 帖子并使用上述代理,它就可以工作。我想问题应该出在 vb.net 代码上。
【问题讨论】:
-
也许用 WireShark 看看是怎么回事?