Я работаю с веб-сервисом REST, который использует обычную аутентификацию и возвращает мне строку XML. Вот метод, который я использую, чтобы получить данные и вернуть их в виде XDocument:
var req = (HttpWebRequest)WebRequest.Create(uri);
String readToEnd;
const string postData = "";
var encoding = new ASCIIEncoding();
byte[] byte1 = encoding.GetBytes(postData);
req.Method = "POST";
req.Timeout = 10000;
req.ContentType = "text/XML";
req.ContentLength = byte1.Length;
string authInfo = userName + ":" + password;
authInfo = Convert.ToBase64String(Encoding.UTF8.GetBytes(authInfo));
req.Headers["Authorization"] = "Basic " + authInfo;
var newStream = req.GetRequestStream();
newStream.Write(byte1, 0, byte1.Length);
newStream.Close();
try
{
var resp = req.GetResponse();
var answer = resp.GetResponseStream();
var _answer = new StreamReader(answer);
readToEnd = _answer.ReadToEnd();
answer.Close();
}
catch (Exception ex)
{
readToEnd = null;
}
return readToEnd != null ? XDocument.Parse(readToEnd) : null;
Теперь, позже, я манипулировал этим XML и готов отправить его обратно в другой URI. Я бы подумал, что это будет тот же код, за исключением, может быть, размещения моей новой строки XML внутри переменной 'postData'?
Это правильный способ отправки строки XML в веб-сервис? Я смотрел, но, кажется, не могу пролить свет на это, когда используется базовая авторизация.