HTTP post xml 数据 .net4 c#
HTTP post xml data .net4 c#
我正在尝试 post 一个 xml 数据
目前我正在做这个。 requestXml 是 XmlDocument.
var connectionString = new Uri(SystemPropertyManager.Connexall_ConnectionString);
var request = (HttpWebRequest)WebRequest.Create(connectionString);
request.Timeout = 10000;
byte[] bytes = System.Text.Encoding.ASCII.GetBytes(requestXml.ToString());
request.ContentType = "text/xml; encoding='utf-8'";
request.ContentLength = bytes.Length;
request.Method = "POST";
Stream requestStream = request.GetRequestStream();
requestStream.Write(bytes, 0, bytes.Length);
requestStream.Close();
HttpWebResponse response;
response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
Stream responseStream = response.GetResponseStream();
string responseStr = new StreamReader(responseStream).ReadToEnd();
return true;
}
return false;
为了对此进行测试,我编写了一个 MVC 应用程序
// POST api/Contact
public SomeObject[] Post([FromBody]string message)
{
return new SomeObject[];
}
我可以调用 post 方法,但消息始终为空。我究竟做错了什么。由于 mvc web api 应用程序只是一个测试应用程序,我无法在消息正文中添加消息标识符。
此代码表示您想要接收序列化为 XML 或 JSON 的 .net String 对象。
// POST api/Contact
public SomeObject[] Post([FromBody]string message)
{
return new SomeObject[];
}
这看起来像
<string xmlns="...">some string</string>
要将字符串读取为 XML,您可以执行
// POST api/Contact
public SomeObject[] Post([FromBody]XElement message)
{
return new SomeObject[];
}
或
// POST api/Contact
public async SomeObject[] Post()
{
string body = await Request.Content.ReadAsStringAsync();
// Parse string to XML
return new SomeObject[];
}
我正在尝试 post 一个 xml 数据
目前我正在做这个。 requestXml 是 XmlDocument.
var connectionString = new Uri(SystemPropertyManager.Connexall_ConnectionString);
var request = (HttpWebRequest)WebRequest.Create(connectionString);
request.Timeout = 10000;
byte[] bytes = System.Text.Encoding.ASCII.GetBytes(requestXml.ToString());
request.ContentType = "text/xml; encoding='utf-8'";
request.ContentLength = bytes.Length;
request.Method = "POST";
Stream requestStream = request.GetRequestStream();
requestStream.Write(bytes, 0, bytes.Length);
requestStream.Close();
HttpWebResponse response;
response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
Stream responseStream = response.GetResponseStream();
string responseStr = new StreamReader(responseStream).ReadToEnd();
return true;
}
return false;
为了对此进行测试,我编写了一个 MVC 应用程序
// POST api/Contact
public SomeObject[] Post([FromBody]string message)
{
return new SomeObject[];
}
我可以调用 post 方法,但消息始终为空。我究竟做错了什么。由于 mvc web api 应用程序只是一个测试应用程序,我无法在消息正文中添加消息标识符。
此代码表示您想要接收序列化为 XML 或 JSON 的 .net String 对象。
// POST api/Contact
public SomeObject[] Post([FromBody]string message)
{
return new SomeObject[];
}
这看起来像
<string xmlns="...">some string</string>
要将字符串读取为 XML,您可以执行
// POST api/Contact
public SomeObject[] Post([FromBody]XElement message)
{
return new SomeObject[];
}
或
// POST api/Contact
public async SomeObject[] Post()
{
string body = await Request.Content.ReadAsStringAsync();
// Parse string to XML
return new SomeObject[];
}