gpt4 book ai didi

vb.net - 通过 vb.net 处理 httppost json 字符串时出现问题

转载 作者:行者123 更新时间:2023-12-04 23:47:19 25 4
gpt4 key购买 nike

这是我用来将帖子发送到指定 URL 的代码。

Dim url = "http://www.abc.com/new/process"

Dim data As String = nvc.ToString
Dim postAddress = New Uri(Url)

Dim request = DirectCast(WebRequest.Create(postAddress), HttpWebRequest)
request.Method = "POST"
request.ContentType = "application/json"
Dim postByteData As Byte() = UTF8Encoding.UTF8.GetBytes(data)
request.ContentLength = postByteData.Length

Using postStream As Stream = request.GetRequestStream()
postStream.Write(postByteData, 0, postByteData.Length)
End Using

Using resp = TryCast(request.GetResponse(), HttpWebResponse)
Dim reader = New StreamReader(resp.GetResponseStream())
result.Response = reader.ReadToEnd()
End Using

现在的问题是我在这里没有得到任何异常,但是我应该在发布后得到的响应(成功或错误)并没有结束。网址没问题,我查过了。我发送的方式是否正确?

最佳答案

我认为问题在于 StreamReader 上的 ReadToEnd 方法在内部使用了 Length 属性。如果服务器不在 http header 中发送长度,则这将为 null。尝试改用内存流和缓冲区:

    Dim url = "http://my.posturl.com"

Dim data As String = nvc.ToString()
Dim postAddress = New Uri(url)

Dim request As HttpWebRequest = WebRequest.Create(postAddress)
request.Method = "POST"
request.ContentType = "application/json"
Dim postByteData As Byte() = UTF8Encoding.UTF8.GetBytes(data)
request.ContentLength = postByteData.Length

Using postStream As Stream = request.GetRequestStream()
postStream.Write(postByteData, 0, postByteData.Length)
End Using

Using resp = TryCast(request.GetResponse(), HttpWebResponse)
Dim b As Byte() = Nothing
Using stream As Stream = resp.GetResponseStream()
Using ms As New MemoryStream()
Dim count As Integer = 0
Do
Dim buf As Byte() = New Byte(1023) {}
count = stream.Read(buf, 0, 1024)
ms.Write(buf, 0, count)
Loop While stream.CanRead AndAlso count > 0
b = ms.ToArray()
End Using
End Using
Console.WriteLine("Response: " + Encoding.UTF8.GetString(b))
Console.ReadLine()
End Using

关于vb.net - 通过 vb.net 处理 httppost json 字符串时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5955677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com