[英]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.