通过身份验证传递 JSON 数据的 HttpPost

本文关键字:数据 HttpPost JSON 身份验证 | 更新日期: 2023-09-27 18:35:45

我正在尝试通过传递JSON数据来调用Web服务。Web 服务接受身份验证,我们需要传递用户名和密码进行身份验证。对不起,伙计们,我无法透露URL和用户名。

以下是我完成这项工作的方法。

private static void MakeRequest(string url, string user_name)
       {
           try
           {
               var webAddr = url;
               var httpWebRequest = (HttpWebRequest)WebRequest.Create(webAddr);
               httpWebRequest.ContentType = "application/json;";
               httpWebRequest.Method = "POST";
               //password is blank
               var credentialBuffer = new UTF8Encoding().GetBytes(user_name + ":" + "");
               httpWebRequest.Headers["Authorization"] = "Basic " + Convert.ToBase64String(credentialBuffer);
               using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
               {
                   string json = "{'"x'":'"true'"}";
                   streamWriter.Write(json);
                   streamWriter.Flush();
               }
               var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
               using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
               {
                   var result = streamReader.ReadToEnd();
               }
           }
           catch (Exception ex)
           {
               throw;
           }
}

当我通过传递 URL 和用户名调用该方法时,它返回错误为"远程服务器返回错误:(422) 无法处理的实体"。我想我没有使用正确的身份验证方法。

请帮忙。

通过身份验证传递 JSON 数据的 HttpPost

"X" 是更新或创建对象的有效属性参数吗?因为当尝试创建或更新具有无效或缺少属性参数的对象时,您将获得 422 无法处理的实体响应。