C# &引用;“未经授权”在调用SOAP api C时#
当使用下面的代码调用SOAP时,我得到了“Unauthorized”作为响应C# &引用;“未经授权”在调用SOAP api C时#,c#,c#-4.0,soap,C#,C# 4.0,Soap,当使用下面的代码调用SOAP时,我得到了“Unauthorized”作为响应 NetworkCredential credentials = new NetworkCredential("username", "password"); var request = (HttpWebRequest)WebRequest.Create(url); request.Credentials = credentials; try { WebResponse response =
NetworkCredential credentials = new NetworkCredential("username", "password");
var request = (HttpWebRequest)WebRequest.Create(url);
request.Credentials = credentials;
try
{
WebResponse response = request.GetResponse();
using(Stream responseStream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
return reader.ReadToEnd();
}
}
catch(WebException Ex)
{
WebResponse errorResponse = Ex.Response;
using(Stream responseStream = errorResponse.GetResponseStream())
{
StreamReader reader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8"));
string errorText = reader.ReadToEnd();
}
throw;
}
你能纠正我哪里错了吗
我收到错误:-“远程服务器返回了一个错误:(401)未经授权。”这应该可以正常工作
HttpWebRequest request = WebRequest.Create(requestUrl) as HttpWebRequest;
string authInfo = "username" + ":" + "Password";
authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo));
request.Headers[HttpRequestHeader.Authorization] = "Basic " + authInfo;
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
using (var responseStream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
return reader.ReadToEnd();
}
这不是一个错误。这是关于您的凭证的警告。您应该发送合法用户凭据以获得对端点的响应。请检查这个
NetworkCredential credentials = new NetworkCredential{
Username=//fill your username,
Password=//fill your password but be carefull, is it hashed or not?
};
var request = (HttpWebRequest)WebRequest.Create(url);
request.Credentials = credentials;
try
{
WebResponse response = request.GetResponse();
using(Stream responseStream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
return reader.ReadToEnd();
}
}
catch(WebException Ex)
{
WebResponse errorResponse = Ex.Response;
using(Stream responseStream = errorResponse.GetResponseStream())
{
StreamReader reader = new StreamReader(responseStream, Encoding.GetEncoding("utf-8"));
string errorText = reader.ReadToEnd();
}
throw;
}
@codran你能指导我如何使用它吗?你确定服务没有授权吗?它可以是普通的标题,也可以是请求。标题。添加(“用户名”,“XXXX”)请求。标题。添加(“密码”,“yyyy”)@abhi-我也试过了,但它也不起作用。这是你创建的soap API吗?如果没有,那么您需要了解有关如何为授权目的传递凭据的适当文档。某个地方可能有一个令牌头。针对的API不同。您可以使用基本身份验证在标头中传递凭据,它应该可以正常工作,但仍然会出现相同的错误远程服务器返回错误:(401)未经授权。您确定使用了正确的凭据吗?因为我目前正在为我的一个服务运行相同的代码,并且它正常运行。