使用vb.net发送POST请求时出现400个错误请求错误
我对Vb.Net不太熟悉,但我尝试在现有的项目上调整一些东西。我有一个尝试在Vb.Net上实现的cURL。我在这里和其他论坛上找到了不同的答案,但这就是我设法找到的答案使用vb.net发送POST请求时出现400个错误请求错误,vb.net,Vb.net,我对Vb.Net不太熟悉,但我尝试在现有的项目上调整一些东西。我有一个尝试在Vb.Net上实现的cURL。我在这里和其他论坛上找到了不同的答案,但这就是我设法找到的答案 Private Function SendRequest(uri As Uri, jsonDataBytes As Byte(), contentType As String, method As String) As String Dim req As WebRequest = WebRequest.Create(ur
Private Function SendRequest(uri As Uri, jsonDataBytes As Byte(), contentType As String, method As String) As String
Dim req As WebRequest = WebRequest.Create(uri)
req.ContentType = contentType
req.Method = method
req.ContentLength = jsonDataBytes.Length
Dim stream = req.GetRequestStream()
stream.Write(jsonDataBytes, 0, jsonDataBytes.Length)
stream.Close()
Dim response = req.GetResponse().GetResponseStream()
Dim reader As New IO.StreamReader(response)
Dim res = reader.ReadToEnd()
reader.Close()
response.Close()
Return res
End Function
Dim postData As String = String.Format("text={0}", title)
Dim data = Encoding.UTF8.GetBytes(postData)
Dim uri = New Uri("https://.....")
Dim slackResponse = SendRequest(uri, data, "application/json", "POST")
这就是我得到的错误:
异常详细信息:System.Net.WebException:远程服务器返回错误:(400)请求错误。
如果我注释掉了SendRequest
函数,我在调用该函数时出错,因此我猜它就在这一部分
无法调试更多。有什么想法吗?为了进行更多的调试,您需要捕获WebException。WebExceptions有一个可能包含更多信息的响应对象
Dim response as WebResponse
Try
response = req.GetResponse().GetResponseStream()
Catch ex As Net.WebException
If ex.Response IsNot Nothing Then
response = ex.Response
End If
End Try
这可能是URL参数的问题,但当请求的json内容出现问题时,许多站点也会返回此类错误 我很久以前就通过添加解决了这个问题
request.ContentType = "application/x-www-form-urlencoded"
您没有正确地形成您的请求。检查请求的参数和标题,根据url的需要进行相应的更正。