接收和操作接收到的 TCP/HTTP 数据时的编程实践?
Programming practices when receiving and manipulating received TCP/HTTP data?
一旦通过 TCP 或 HTTP 返回数据,数据操作应该作为字节数组接收,还是 O.K。练习将其作为字符串接收?我一直试图在 github 上找到一些专业项目来得到我的答案,但没有成功。 MSDN 上 Microsoft 的一些 HTTPClient 示例通常使用 GetByteArrayAsync(website) 方法,而不是 GetStringAsync(website)。他们有什么理由使用 GetByteArrayAsync 而不是 GetStringAsync,这将使数据操作变得更加容易吗?先改用 GetByteArrayAsync 有什么好处吗?
移动"through the wire"的是字节,不是字符串。
它们可能是文本,但也可以是图片或 zip 文件。
在 TCP/HTTP 级别,这是未知的,这无关紧要。
该决定属于更高级别。
HTTP 的信息比 TCP 多一点,因此您可能有一个 mimetype 来帮助您确定这些字节是什么。
即使你知道它是某种文本,你也需要知道字符集。您可能会在 HTTP header 或文档本身中获得该信息,或者可能有一个标准说明编码是什么。
只有这样你才能转换成字符串。
一旦通过 TCP 或 HTTP 返回数据,数据操作应该作为字节数组接收,还是 O.K。练习将其作为字符串接收?我一直试图在 github 上找到一些专业项目来得到我的答案,但没有成功。 MSDN 上 Microsoft 的一些 HTTPClient 示例通常使用 GetByteArrayAsync(website) 方法,而不是 GetStringAsync(website)。他们有什么理由使用 GetByteArrayAsync 而不是 GetStringAsync,这将使数据操作变得更加容易吗?先改用 GetByteArrayAsync 有什么好处吗?
移动"through the wire"的是字节,不是字符串。 它们可能是文本,但也可以是图片或 zip 文件。 在 TCP/HTTP 级别,这是未知的,这无关紧要。 该决定属于更高级别。
HTTP 的信息比 TCP 多一点,因此您可能有一个 mimetype 来帮助您确定这些字节是什么。
即使你知道它是某种文本,你也需要知道字符集。您可能会在 HTTP header 或文档本身中获得该信息,或者可能有一个标准说明编码是什么。
只有这样你才能转换成字符串。