HttpWebRequest与GET:401未经授权

时间:2011-08-01 09:31:05

标签: c# email networking soap httpwebrequest

我发现httpWebRequest存在一些问题,我在其他论坛上已经阅读了所有相同的问题,但答案似乎没有用。我的代码:

HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse resp;
wr.ContentType = "text/html; charset=UTF-8"; 
wr.Method = "GET";
wr.Credentials = new NetworkCredential("user", "password");
resp = (HttpWebResponse)wr.GetResponse();

远程服务器返回错误:(401) Unauthorized. 响应说饼干中没有身份验证令牌。我可以使用POST方法使用我的auth请求接收此令牌。我甚至试图通过"new Cookie ("authToken",token_value)".将它放到CookieContainer但结果是相同的 - error 401。有人知道解决方案吗?

感谢名单。

我使用Zimbra web服务器,有权控制它。 .NET 4.0。我的网址是我需要下载的.eml文件的路径。要指定文件,我需要添加一些GET参数:id和part。所以整个地址看起来像http://someserver.info/service/content/get?id=1&part=1

1 个答案:

答案 0 :(得分:0)

(在OP的评论和问题编辑中回答。移到这里。见Question with no answers, but issue solved in the comments (or extended in chat)

OP写道:

  

Zimbra中的授权令牌称为ZM_AUTH_TOKEN,因此您需要将authtoken放入这样的Cookie中:

wr.CookieContainer = new CookieContainer();
wr.CookieContainer.Add(new Uri(url), new Cookie("ZM_AUTH_TOKEN", rc.AuthToken));
  

您不需要放置auth标头,请求将起作用