问题描述
如题,在.NET/C#的程序开发中,当前使用了RestSharp
来模拟请求,向远程服务器发送xml数据,代码如下:
RestRequest request = new RestRequest();
request.Method = Method.POST;
request.Resource = "/rest-uri";
request.AddHeader("Content-Type", "application/someContentType");
string xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>" + Environment.NewLine +
"<register-request">" + Environment.NewLine +
" <name=\"someName\"/>" + Environment.NewLine +
"</register-request>");
request.AddParameter("text/xml", registerSinkRequest, ParameterType.RequestBody);
但按照以上的设置XML
数据无效,此问题应该如何处理呢?
方案一
使用RestSharp
的RestRequest.RequestFormat
属性来设置,然后调用AddBody(...)
方法,如下:
var client = new RestClient();
// client.XmlSerializer = new XmlSerializer(); // 默认的XML序列化类
// client.XmlSerializer = new SuperXmlSerializer(); // 重写XML序列化类,需继承并实现ISerializer接口
var request = new RestRequest();
request.RequestFormat = DataFormat.Xml;
request.AddBody(objectToSerialize);
方案二
使用如下方式设置内容格式:
oRequest.Parameters.Add(new Parameter() { Name = "application/json;charset=UTF-8", Type = ParameterType.RequestBody, Value = sBody });
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册