返回值未找到或 "Specified value has invalid HTTP Header characters. Parameter name: name"

Returned value is Not Found or "Specified value has invalid HTTP Header characters. Parameter name: name"

正在尝试让休息请求通过。我能够从推荐的方法中获取 Cookie,但无法处理以下请求。标题中列出的回复是 return 在以下条件下编辑的:

foreach(RestResponseCookie a in response.Cookies){
 if(a.Name == "JSESSIONID")
                {
                    request.AddHeader("cookie:" + a.Name, a.Value);
                }
}
response = client.Execute(request);

这 return 是“指定值包含无效的 HTTP Header 字符。参数名称:name”

尝试通过

添加时
            request.AddCookie(a.Name, a.Value);

return 是 "Not Found",虽然我手动去网站时可以得到请求。

编辑 1.

可以通过处理所有 cookie 而不是仅处理文档明确说明的 cookie 来解决问题。

client.CookieContainer = new CookieContainer();
foreach(RestResponseCookie a in response.Cookies){
   if(a.Expires == new DateTime(0))//remove expiring cookie as stated in dat3450's answer
        client.CookieContainer.Add(newCookie() {Name = a.Name, Value = a.Value, Path = a.Path, Domain = a.Domain});
}

从上面的代码来看,请求中似乎没有包含一些额外的 cookie。通过 JIRA 发送有效请求需要 三个 cookie API:

  • JSESSIONID
  • studio.crowd.tokenkey
  • atlassian.xsrf.token

您可以在获取 JSESSIONID cookie 的同一位置获取这些 cookie(来自有效的登录响应)。遍历响应中的所有 Set-Cookie headers 并使用除 studio.crowd.tokenkey 之外的所有 Expires 参数。

JIRA API 参考页并没有真正显示太多关于此的信息,因此您可以在此处找到一些附加信息:https://confluence.atlassian.com/cloud/cookies-744721661.html