【发布时间】:2011-01-05 00:46:00
【问题描述】:
我想用 cURL 发布 XML 数据。我不关心How do I make a post request with curl中所说的形式。
我想使用 cURL 命令行界面将 XML 内容发布到一些网络服务。比如:
curl -H "text/xml" -d "<XmlContainer xmlns='sads'..." http://myapiurl.com/service.svc/
但是,服务无法处理上述示例。
C#中的参考示例:
WebRequest req = HttpWebRequest.Create("http://myapiurl.com/service.svc/");
req.Method = "POST";
req.ContentType = "text/xml";
using(Stream s = req.GetRequestStream())
{
using (StreamWriter sw = new StreamWriter(s))
sw.Write(myXMLcontent);
}
using (Stream s = req.GetResponse().GetResponseStream())
{
using (StreamReader sr = new StreamReader(s))
MessageBox.Show(sr.ReadToEnd());
}
【问题讨论】:
-
“服务无法处理”是什么意思?服务是否正确接收它?是否正确发布?服务从您的请求中收到什么?
-
服务无法识别请求。我收到一个内部错误页面。使用我的 C# 示例时不会发生这种情况。发布的数据是一样的。
-
您收到什么 HTTP 响应代码? 500?
-
我的预感是数据“转义”到 Web 服务(如
%3C%3Fxml+version=%221.0%22+encoding%3D%22UTF-8%),这就是我在 java 中遇到的......