[英]How to add the Content-Length,Content-Type and Last-Modified to the HTTP Response Message Header
[英]How to specify the expected response content-type in a http request?
我的客户需要以 XML 格式表示的 .Net 数据集数据类型获取他的数据。 目前我的 api 返回一个 Json 类型的列表。 我怎样才能提出这样的要求?
在客户端(即 Asp.NET Web API)中:
var myHttpClient = new HttpClient();
myHttpClient.DefaultRequestHeaders.Add("Accept", "application/xml");
myHttpClient.DefaultRequestHeaders.Add("MyExpected-Content-Type", "Dataset");
var response = await myHttpClient.GetAsync(apiUrl);
在服务器中(即 Asp.NET Core Web API):
if (Request.Headers["MyExpected-Content-Type"] == "Dataset")
{
DataSet ds = new DataSet();
// ...
return Ok(ds.GetXml());
}
else
{
var lst = new List<Gifts>();
// ...
return Ok(lst);
}
这是你想要的吗? 我发现这个解决方案返回 XML,这个答案用于将 model 转换为 xml 字符串。
public IActionResult getHeader() {
if (Request.Headers["MyExpected-Content-Type"] == "Dataset") {
var user = new UserModel { age= 1, name="user1" };
var writer = new StringWriter();
var serializer = new XmlSerializer(typeof(UserModel));
serializer.Serialize(writer, user);
string xml = writer.ToString();
return new ContentResult
{
ContentType = "application/xml",
Content = xml,
StatusCode = 200
};
}
else
{
var xml = "<result><value>hello</value></result>";
return new ContentResult
{
ContentType = "application/xml",
Content = xml,
StatusCode = 200
};
}
}
这是我的测试结果:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.