向api发送POST请求时出现500内部错误

时间:2018-07-16 09:20:22

标签: json vb.net post httprequest

所以我的目标是向api发送HttpRequest,它返回500内部服务器错误。 根据他们的说法,其他公司都在成功使用此Api,因此它在理论上应该有效。我发送了我用来测试它是否有效的json示例字符串,他们确认它是正确的。那是什么原因导致错误?

    Public Function SendStringToHttpServer(dataString As String, uriString As String, credentials As NetworkCredential) As String
    Dim resultInfo As String
    Dim request As HttpWebRequest = CType(WebRequest.Create(uriString), HttpWebRequest)
    request.Credentials = credentials
    request.Timeout = 6000
    request.Method = "POST"

    Dim byteArray As Byte() = Encoding.UTF8.GetBytes(dataString)
    request.ContentType = "application/json"
    request.ContentLength = byteArray.Length

    Try
        Dim dataStream As Stream = request.GetRequestStream()
        dataStream.Write(byteArray, 0, byteArray.Length)
        dataStream.Close()
        Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)

        dataStream = response.GetResponseStream()

        Dim reader As New StreamReader(dataStream)
        Dim responseFromServer As String = reader.ReadToEnd()
        reader.Close()
        response.Close()
    Catch ex As Exception

        Debug.WriteLine(ex.Message)
    End Try
    Return "done"
End Function

注意:我看到有一些类似的线程,例如this。但我使用的方式完全相同,因此它应该可以工作,但不能-.- (除了我严格要求并因此明确投放的事实)

编辑:关于身份验证方法:这肯定会起作用,因为如果我在credenitals中使用错误的用户名或密码,我会得到403:授权错误,而不是500。

此外,读取请求也可以正常工作。读取请求非常类似,只是一个基本的HttpRequest,它仅需要url和凭据。

编辑2:因此,我读到它可以与HttpRequest自动绑定在一起,并在标头中自动添加“ Expect:100-continue”。我现在防止这样做

ServicePointManager.Expect100Continue = False

但是它仍然给出500错误。

0 个答案:

没有答案