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

C# HttpPost通过身份验证传递JSON数据,c#,C#,我试图通过传递JSON数据来调用web服务。web服务接受身份验证,我们需要传递用户名和密码进行身份验证。 对不起,伙计们,我不能透露URL和用户名 下面是我做这项工作的方法 private static void MakeRequest(string url, string user_name) { try { var webAddr = url; var httpWebReq

我试图通过传递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)不可处理的实体。” 我想我没有使用正确的身份验证方法


请提供帮助。

更新或创建对象的“X”属性参数是否有效?因为当尝试创建或更新具有无效或缺少属性参数的对象时,您将得到422个不可处理的实体响应。

422个错误通常表示您的JSON数据格式正确,但存在语义错误,这意味着内容的格式不正确。如果我将“”数据也作为JSON传递,然后它也给了我同样的错误。如何确保使用写代码进行身份验证?@praveen.upadhyay请尝试以下操作:
string json=“{\'x\':true}”@Zaitsman字符串json=“{\“x\”:true}”之间的区别是什么;和字符串json=“{\“x\”:\“true\”}”@praveen.upadhyay如果您的操作需要布尔数据类型,则发送“true”可能无法正确反序列化,因为从技术上讲这是一个字符串。我唯一的问题是,我的身份验证是否有问题?这里提到的X只是一个例子。我认为您的问题不是由身份验证问题引起的,如果是这样的话,您会得到错误响应上的身份验证,比如401403等等。问题是您的请求负载!查看422的描述:422(不可处理实体)状态代码意味着服务器理解请求实体的内容类型(因此415(不支持的媒体类型)状态代码不合适),并且请求实体的语法正确(因此400(坏请求)状态代码不合适)但无法处理包含的指令。这意味着问题在Web服务端?可能是!您应该检查web服务端以修复该问题。