【发布时间】:2017-06-08 09:37:54
【问题描述】:
我正在尝试将 HttpClient PostAsync() 请求发送到公司的内部共享点站点,但它返回的响应带有禁止错误。我拥有加载站点所需的所有访问权限,并且还将所需的标头传递给 HttpClient 对象。
这里是代码 sn-p。
HttpClient client = new System.Net.Http.HttpClient (new HttpClientHandler { UseDefaultCredentials = true });
client.BaseAddress = new Uri (string.Format (API_URL, p_siteNumber));
client.DefaultRequestHeaders.Accept.Add (new MediaTypeWithQualityHeaderValue (@"application/atom+xml"));
client.DefaultRequestHeaders.TryAddWithoutValidation ("Accept-Encoding", "gzip, deflate");
client.DefaultRequestHeaders.TryAddWithoutValidation ("Accept-Language", "en-US, en;q=0.8, hi;q=0.6");
client.DefaultRequestHeaders.TryAddWithoutValidation ("User-Agent", "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:19.0) Gecko/20100101 Firefox/19.0");
client.DefaultRequestHeaders.TryAddWithoutValidation ("Accept-Charset", "ISO-8859-1");
HttpResponseMessage httpResponse = await client.PostAsync (urlHttpPost, new StringContent (string.Empty));
string response = await httpResponse.Content.ReadAsStringAsync ();
谁能帮我解决这个问题? 提前致谢。
【问题讨论】:
-
根据您给我们的帮助,我们真的帮不上什么忙。您可能缺少服务器期望的标头或某种 cookie 或 post 值。我建议使用诸如 Fiddler 之类的软件来嗅出一个有效的请求并将其应用到您的代码中。
-
如果您使用来自chrome.google.com/webstore/detail/postman/… 的相同标头和内容执行相同的请求,您会得到相同的结果吗?
-
您使用的网址是什么?你试图做什么?如果您的帐户无权使用它们,您将无法访问它们。您是否尝试过使用 Client Object Model ?从它开始以消除请求问题,例如无效的 URL 或错误的标头
标签: c# httprequest httpclient httpresponse