vb.net 如何从 HTTP 1.1 响应中删除页眉和页脚

vb.net how to remove headers and footer from HTTP 1.1 response

提问人:Gabriele Cozzolino 提问时间:10/10/2023 更新时间:10/10/2023 访问量:22

问:

我正在使用 TcpClient 获取此响应:

POST /test HTTP/1.1
Accept: */*
Content-Length: 3644
Content-Type: multipart/form-data; boundary=-------------------------7e13971310878
Host: 192.168.1.103:123
User-Agent: cpp-httplib/0.9

---------------------------7e13971310878
Content-Disposition: form-data; name="AE31172988786444323443"; filename="anpr.xml"
Content-Type: application/xml
Content-Length: 3417

<?xml version="1.0" encoding="utf-8"?>
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddress>192.168.1.64</ipAddress>
<ipv6Address>::</ipv6Address>
<protocol>HTTP</protocol>
...
</EventNotificationAlert>

---------------------------7e13971310878--

我只对保留 xml 部分感兴趣,所以我试图摆脱页眉和页脚。我事先不知道响应的所有内容,所以我需要一个不基于字符串替换等的通用解决方案。

有了这个,我摆脱了标题:

Dim HTTPHeaderDelimiter As String = "<?xml version=""1.0"" encoding=""utf-8""?>" & vbCrLf
If dati.IndexOf("<?xml version=""1.0"" encoding=""utf-8""?>") > -1 Then
    dati = dati.Substring(dati.IndexOf(HTTPHeaderDelimiter) + HTTPHeaderDelimiter.Length)
End If

但是我怀疑删除页脚的最佳方法是什么,这意味着“---------------------------7e13971310878--”有什么想法吗?

XML vb.net HttpResponse TCPClient

评论

0赞 Hel O'Ween 10/10/2023
使用 TcpClient over HttpClient 检索 XML 是否有特定原因?就像这里演示的那样
0赞 Gabriele Cozzolino 10/10/2023
@HelO没有具体原因,我只是使用了另一个旧项目的代码,我将尝试使用 HttpClient,感谢您的提示

答:

0赞 Gabriele Cozzolino 10/10/2023 #1

我只是在结尾之前添加了这个,如果

dati = dati.Substring(0, dati.IndexOf(vbCrLf & vbCrLf & "-"))

似乎还可以,但我想知道是否有更智能的解决方案来操作原始响应字符串