c# – ASP.NET使用身份验证标头将JSON数据发布到HTTP API
发布时间:2020-12-15 22:17:04 所属栏目:百科 来源:网络整理
导读:我有C#代码将 JSON数据发送到 web API,但我一直收到401(未授权)响应.根据 this function,下面的代码应正确发出POST请求,对不对?我也尝试了相同结果的小变化. 这是发出请求的代码: public async Task Create(){ using (var client = new HttpClient()) { cl
我有C#代码将
JSON数据发送到
web API,但我一直收到401(未授权)响应.根据
this function,下面的代码应正确发出POST请求,对不对?我也尝试了相同结果的小变化.
这是发出请求的代码: public async Task Create() { using (var client = new HttpClient()) { client.BaseAddress = new Uri("https://zrh.cloudsigma.com/api/2.0/"); var testVM = new CS_VM("test"); var auth = string.Format("{0}:{1}","mail@mail.com","password"); var encoded = Convert.ToBase64String(Encoding.ASCII.GetBytes(auth)); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",encoded); HttpResponseMessage response = await client.PostAsJsonAsync("servers",testVM); if (response.IsSuccessStatusCode) { var a = "ok"; } else { var a = "fail"; } } } 这是以JSON格式发送的类: public class CS_VM { public CS_VM(string type) { if ("test" == type) { cpu = 1000; mem = 536870912; name = "testServer"; vcn_password = "testserver"; } } public string name { get; set; } public int cpu { get; set; } public int cores { get; set; } public int mem { get; set; } public string status { get; set; } public Owner owner { get; set; } public Uri resource_uri { get; set; } public string uuid { get; set; } public string vcn_password { get; set; } } 请求标头: Authorization: Basic bWFpbEBtYWlsLmNvbTpwYXNzd29yZA== 响应头: Transfer-Encoding: chunked Connection: keep-alive Vary: Cookie X-REQUEST-ID: 2584e232-5bb2-48c0-a307-67e6c03258c0 Date: Sun,19 Jul 2015 21:39:21 GMT Server: cloudflare-nginx WWW-Authenticate: Digest nonce="1437341961.55:6967:0fd0a6b2dcde8f45a5ae288c3b73ee12",realm="users",algorithm="MD5",opaque="b228739d1711b0ff025703aea82ee2a208faaaa7",qop="auth",stale="false",Basic Realm="users" CF-RAY: 2089941a6935168e-ARN 解决方法
来自WWW-Authenticate:摘要nonce =“1437341 ……看起来是这样,这是一个摘要认证.你应该从你得到的响应中建立一个新的授权标题.使用你链接的关于
web API的方法,并使用摘要访问身份验证部分.在第401个响应中给出了nonce,realm,qop变量.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |