首页 / .NET / 正文

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

4360 发布于: 2018-01-30 读完约需4分钟

问题描述

如题,在.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 });

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: [LINQ].NET/C#程序开中从集合List<T>中获取重复元素的方法有哪些呢?

下一篇: [RestSharp].NET/C#程序开发中如何在RestSharp的请求地址中添加GET参数?

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

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册