返回值未找到或 "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
正在尝试让休息请求通过。我能够从推荐的方法中获取 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