google-app-engine - 无法在 Google App Engine 中获取 HTTP header 属性

标签 google-app-engine go

在我的 GAE 中,我有以下代码段:

accountId := r.Header.Get("user_id")
if accountId == "" {
    accountId = r.FormValue("user_id")
    if accountId == "" {
        utility.CreateErrorResponse(w, "User ID is missing from request")
        return
    }
}

代码基本上尝试从 header 中读取“user_id”,但 accountId 为空,导致程序意外提前返回。

这是我的 C# 客户端代码:

...
HttpWebRequest req = (HttpWebRequest) WebRequest.Create(data);
req.Method = "GET";
req.KeepAlive = false;
foreach (ExtraAttribute att in mAttributes)
{
    req.Headers.Add( att.mKey, att.mValue);
}
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
...

foreach 帮助我将“user_id”属性添加到请求 header 。 (并且我已经确认在 Fiddler 中存在“user_id”条目)

接下来我应该做什么来查明发生了什么?

谢谢

最佳答案

我刚刚发现,在我将属性名称从“user_id”更改为“UserId”之后,现在一切正常了......

不知道是大写还是下划线问题。

关于google-app-engine - 无法在 Google App Engine 中获取 HTTP header 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18143039/

相关文章:

python - 如何压缩从 url 获取的 PNG 图像而不更改其尺寸

java - Firebase Java 管理 SDK 错误

google-app-engine - 如何重置 App Engine 的 appcfg 身份验证状态?

java - 将 @index 添加到字段后,对象化过滤器不起作用

java - 生成端点库时 GAE 中的 DuplicateRestPathException

pointers - 如何修改嵌套结构的属性值

linux - 从 go lang 程序启动终端窗口?

ssl - 获取网络/http : TLS handshake timeout golang

linux - 从 Ubuntu 20 构建适用于 Ubuntu 18 的应用程序

mongodb - golang上的mongo随机记录