问题描述
目标: 当我在浏览器中打开 localhost:9000/xml
页面时,我希望看到 xml 内容(很大)。我使用带有 grpc-gateway 的 gRPC 服务器作为代理。
要发送我的 xml 文件,我使用服务器端流并使用 google.api.HttpBody
内容类型发送 text/xml
消息。以下是我用于流式传输 xml 的服务器代码的一部分:
reader := bytes.NewReader(data) // "data" is a large xml file
buffer := make([]byte,1024)
for {
n,err := reader.Read(buffer)
if err == io.EOF {
break
}
if err != nil {
return status.Error(codes.Internal,"")
}
if err := stream.Send(&httpbody.HttpBody{
ContentType: "text/xml",Data: buffer[:n],}); err != nil {
return status.Error(codes.Internal,"")
}
}
不幸的是,当我在浏览器中打开 localhost:9000/xml
时,我发现我的 xml 响应已损坏。每 1025 个字节换行,例如:
...
...
<loc>https://example.com/books/1</l
oc>
...
...
如何流式传输大型 xml 内容而不破坏它?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)