Я пытаюсь отправить службу XML в службу REST. Вот код, который я использую:HTTP 401 Ошибка при отправке XML в REST
Я получаю следующую ошибку при вызове службы.
Удаленный сервер возвратил ошибку: (401) Неавторизованный.
Я также попытался установить NetworkCredentials непосредственно т.е.
NetworkCredential nc = new NetworkCredential(username, password);
serviceRequest.Credentials = nc;
Спасибо за вашу помощь.
Uri address = new Uri("https://localhost:30000/restservice/");
// Create the web request
HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;
// Set type to POST
request.Method = "POST";
request.ContentType = "application/json";
string data = @"<Sample XML Here>";
// Create a byte array of the data we want to send
byte[] byteData = UTF8Encoding.UTF8.GetBytes(data);
// Set the content length in the request headers
request.ContentLength = byteData.Length;
// Write data
using (Stream postStream = request.GetRequestStream())
{
postStream.Write(byteData, 0, byteData.Length);
}
string usernamePassword = username + ":" + password;
CredentialCache mycache = new CredentialCache();
mycache.Add(address, "Basic", new NetworkCredential(username, password));
request.Credentials = mycache;
// Get response
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
// Get the response stream
StreamReader reader = new StreamReader(response.GetResponseStream());
// Console application output
Response.Write(reader.ReadToEnd());
}
Спасибо Даррел. Вот что я получаю от скрипача: нет заголовка прокси-аутентификации. Нет заголовка WWW-Authenticate. –
Ничего себе, что сосет. Спецификация HTTP говорит, что 401 всегда должен сопровождаться заголовком WWW-Authenticate. Что такое технология вашего сервера? –
Я работаю над Windows Server 2008 R2. Вот статья, которую я назвал, которая, наконец, работала на http://msdn.microsoft.com/en-us/library/debx8sh9.aspx. Все еще имеют те же проблемы с использованием WebClient и примера выше. –