当前位置: 首页 > 知识库问答 >
问题:

GRPC未设置某些标题

柯星华
2023-03-14

我有这个代码来禁用GET API的客户端缓存:

headers := metadata.Pairs(
    "Cache-Control", "no-cache, no-store, must-revalidate",
    "Pragma", "no-cache",
    "Expires", "0",
)
err := grpc.SetHeader(ctx, headers)

当I curl-IAPI时,响应显示缓存控制:没有缓存,没有存储,必须重新验证,但不是Pragma或Expires。我想我用正确的方法来设置这些。GRPC不支持某些标头吗?

共有1个答案

公西俊才
2023-03-14

我不认为存在任何头限制(即使Pragma可能存在问题,即HTTP 1.0,请参阅)https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Pragma). 也许这是其中一个原因:

  1. 你只设置标题,但不发送,看https://pkg.go.dev/google.golang.org/grpc?tab=doc#SetHeader

发生以下情况之一时,将发送所有元数据:

  • grpc。调用SendHeader()
  • 发送第一个响应
  • 发送RPC状态(错误或成功)
 类似资料:
  • 我正在为大学做一个项目,使用维基百科API来拉图片,但是有些请求无法返回结果,例如:https://en.wikipedia.org/w/api.php?action=query https://en.wikipedia.org/w/api.php?action=query 我已经尝试过转换成UTF,或者URLencodinng,尽管上面的内容是从实际维基百科文章的URL复制而来的。

  • 我刚刚在play store上发布了我的应用程序,我注意到一些三星设备没有显示我应用程序的图标,而是使用了android Studio的默认图标。你知道是什么引起的吗?我很困惑

  • 最近,我们在Android应用程序中增加了对Chromecast的支持,但在对各种移动设备(手机和平板电脑)的扩展测试中,发现在许多移动设备上,Flipps应用程序都没有发现Chromecast。在相同的设备上,我们使用了最新版本的官方Chromecast SDK演示应用程序进行测试,该应用程序从https://github.com/googlecast/castvideo-Android下载(主

  • 我使用HttpClient发出请求,在每个请求上我都设置了头,但当我看到chrome网络选项卡时,这些头并没有设置。 密码 网络选项卡图像

  • Samsung正在成功获取应用程序在后台或前台被杀死, 我的目标是API27,这是我的代码 分级

  • 问题内容: 我知道这个问题已经问过几次了。 但是,我无法获得这些解决方案。 我正在运行标准安装的node.js和socket.io。(来自Amazon EC2上的yum) 问题是Chrome退回到xhr轮询,并且这些请求需要有效的CORS配置。但是,我似乎无法正常工作。我的Web服务器在端口80上运行,而node.js(socket.io)在端口81上运行。如您所见,我试图使socket.io使用