我试图通过传递JSON数据来调用Web服务。 Web服务接受身份验证,我们需要传递用户名和密码进行身份验证。 我很抱歉,我无法透露网址和用户名。
以下是我完成这项工作的方法。
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)Unprocessable Entity。” 我想我没有使用正确的身份验证方法。
请帮忙。
答案 0 :(得分:0)
“X”有效的属性参数是更新还是创建对象?因为在尝试创建或更新具有无效或缺少属性参数的对象时,您将获得422 Unprocessable Entity响应。