[RestSharp].NET/C#程序开发中当使用RestSharp时如何设置请求头内容(content-type)为xml格式?

.NET 作者: Rector 632阅读 0评论 0收藏 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

问题描述

如题,在.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数据无效,此问题应该如何处理呢?

方案一

使用RestSharpRestRequest.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 });

阅读了该文章的人还浏览了...

本文永久链接码友网 » [RestSharp].NET/C#程序开发中当使用RestSharp时如何设置请求头内容(content-type)为xml格式?

发布于: 2018-01-30 14:07:58
分享扩散:

文章评论

获取验证码