Добавление тела в запрос HttpWebRequest, который используется с помощью службы Azure mgmt api - PullRequest
12 голосов
/ 06 февраля 2012

Как мне добавить текст тела запроса 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>

Любая помощь очень ценится

Ответы [ 3 ]

27 голосов
/ 06 февраля 2012
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();
6 голосов
/ 06 февраля 2012

Не знаю насчет 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);

Если вам по какой-то причине не нужно a HttpWebRequest, использовать WebClient для загрузки данных гораздо более кратко:

using (WebClient wc = new WebClient())
{
    var result = wc.UploadData("http://foo.com", payload);
}
0 голосов
/ 06 февраля 2012

Глава моей книги, показывающая, как использовать API управления службами Windows Azure (и создать полезную нагрузку), может быть загружена бесплатно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...