Добавление тела к HttpWebRequest, которое используется с лазурной службой mgmt api
Как я могу добавить в тело HttpWebRequest?
Тело должно состоять из следующих
<?xml version="1.0" encoding="utf-8"?>
<ChangeConfiguration xmlns="http://schemas.microsoft.com/windowsazure">
<Configuration>base-64-encoded-configuration-file</Configuration>
<TreatWarningsAsError>true|false</TreatWarningsAsError>
<Mode>Auto|Manual</Mode>
</ChangeConfiguration>
Любая помощь очень ценится
Ответы
Ответ 1
byte[] buf = Encoding.UTF8.GetBytes(xml);
request.Method = "POST";
request.ContentType = "text/xml";
request.ContentLength = buf.Length;
request.GetRequestStream().Write(buf, 0, buf.Length);
var HttpWebResponse = (HttpWebResponse)request.GetResponse();
Ответ 2
Не знаю о Azure, но здесь просто общий план отправки данных с помощью HttpWebRequest
:
string xml = "<someXml></someXml>";
var payload = UTF8Encoding.UTF8.GetBytes(xml);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://foo.com");
request.Method = "POST";
request.ContentLength = payload.Length;
using(var stream = request.GetRequestStream())
stream.Write(payload, 0, payload.Length);
Если по какой-то причине вам не понадобится HttpWebRequest
, использование WebClient
для загрузки данных гораздо более кратким:
using (WebClient wc = new WebClient())
{
var result = wc.UploadData("http://foo.com", payload);
}
Ответ 3
В моей книге о том, как использовать API управления службами Windows Azure (и создать полезную нагрузку), можно бесплатно загрузить.