我正在进行一个与第三方应用程序集成的项目。该第三方使用本地(环回地址)TCP 侦听器来处理请求,并使用 XML 数据进行响应。在 XML 之前没有发送大小标头:传输只是用 \r\n 转义序列关闭。以下是我想出来处理这个问题:
byte[] buffer = new buffer[DefaultBufferSize];
do
{
bytesRead = networkStream.Read(buffer, 0, buffer.Length);
string response = Encoding.UTF8.GetString(buffer, 0, bytesRead);
if (response.EndsWith("\r\n"))
{
isReading = false;
}
} while (isReading);
现在,这里的主要问题是,虽然大部分 XML 数据都被转义了,但换行符却没有。所以,我可能会读取一段数据,最后两个字符可能会与终止序列匹配。
有什么办法可以解决这个问题,还是我需要向第三方提出错误请求?