C# 从.NET Web API返回Cookie和对象
我正在使用.NETWebAPI,我希望发送新创建的cookie以及在WebAPI中生成的字符串 C#代码:C# 从.NET Web API返回Cookie和对象,c#,cookies,asp.net-web-api,asp.net-web-api2,httpcookie,C#,Cookies,Asp.net Web Api,Asp.net Web Api2,Httpcookie,我正在使用.NETWebAPI,我希望发送新创建的cookie以及在WebAPI中生成的字符串 C#代码: 公共元组CookieMessage() { string result=“Cookie创建成功!”; CookieHeaderValue服务器cookie=新的CookieHeaderValue(“,”); serverCookie=新CookieHeaderValue (“IEM”、“成功”); serverCookie.Expires=DateTimeOffset.Now.AddMin
公共元组CookieMessage()
{
string result=“Cookie创建成功!”;
CookieHeaderValue服务器cookie=新的CookieHeaderValue(“,”);
serverCookie=新CookieHeaderValue
(“IEM”、“成功”);
serverCookie.Expires=DateTimeOffset.Now.AddMinutes(15);
serverCookie.Domain=Request.RequestUri.Host;
serverCookie.Path=“/”;
HttpResponseMessage response=Request.CreateResponse(HttpStatusCode.OK);
AddCookies(新的CookieHeaderValue[]{serverCookie});
返回Tuple.Create(响应、结果);
}
如何将响应“Cookie Created Successfully!”与Cookie服务器Cookie
请帮助我如何发送这两个在一个单一的回应客户。我收到500内部服务器错误
我在回复中看到了以下信息
{“消息”:“发生了错误”。,“异常消息”:“错误”
'ObjectContent'1'类型未能序列化的响应正文
内容类型'application/json;
字符集=utf-8.,“异常类型”:“System.InvalidOperationException”
,“StackTrace”:null,“InnerException”:{“Message”:“出现错误”
发生。“,“ExceptionMessage”:“从中获取值时出错”
上的“分隔符数组”
“System.Version.”,“ExceptionType”:“Newtonsoft.Json.JsonSerializationException”
,“StackTrace”:“在
Newtonsoft.Json.Serialization.DynamicValueProvider.GetValue(对象
目标)\r\n位于
Newtonsoft.Json.Serialization.JsonSerializerInternalWriter.CalculatePropertyValues(JsonWriter
编写器,对象值,JsonContainerContract,JsonProperty
成员、JsonProperty属性、JsonContract和memberContract、对象&
memberValue)\r\n位于
Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
.SerializeObject(JsonWriter编写器、对象值、JsonObjectContract
合同,JsonProperty成员,JsonContainerContract
collectionContract,JsonProperty containerProperty)\r\n位于
Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
.SerializeValue(JsonWriter编写器、对象值、JsonContract
valueContract,JsonProperty成员,JsonContainerContract
containerContract,JsonProperty containerProperty)\r\n位于
Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
.SerializeObject(JsonWriter编写器、对象值、JsonObjectContract
合同,JsonProperty成员,JsonContainerContract
collectionContract,JsonProperty containerProperty)\r\n位于
Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
.SerializeValue(JsonWriter编写器、对象值、JsonContract
valueContract,JsonProperty成员,JsonContainerContract
containerContract,JsonProperty containerProperty)\r\n位于
Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
.SerializeObject(JsonWriter编写器、对象值、JsonObjectContract
合同,JsonProperty成员,JsonContainerContract
collectionContract,JsonProperty containerProperty)\r\n位于
Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
.SerializeValue(JsonWriter编写器、对象值、JsonContract
valueContract,JsonProperty成员,JsonContainerContract
containerContract,JsonProperty containerProperty)\r\n位于
Newtonsoft.Json.Serialization.JsonSerializerInternalWriter
.Serialize(JsonWriter JsonWriter,对象值)\r\n在
Newtonsoft.Json.JsonSerializer.SerializeInternal(JsonWriter
jsonWriter,对象值)\r\n位于
Newtonsoft.Json.JsonSerializer.Serialize(JsonWriter JsonWriter,
对象值)\r\n位于
System.Net.Http.Formatting.JsonMediaTypeFormatter.c_uuDisplayClassD。
b__c()\r\n在System.Threading.Tasks.TaskHelpers.RunSynchronously(操作,
CancellationToken token)”,“InnerException”:{“Message”:“出现错误。”
发生。“,“ExceptionMessage”:“公共语言运行库检测到
无效的
程序“”,“例外类型”:“System.InvalidProgrameException”,“StackTrace”:
在GetSeparatorsArray(对象)\r\n在
Newtonsoft.Json.Serialization.DynamicValueProvider.GetValue(对象
目标“}}”
您正在返回不受支持的类型。我确信该框架将永远无法序列化
元组
。如果要修改响应头,只需返回HttpResponseMessage
这应该如您所期望的那样起作用:
public HttpResponseMessage CookieMessage()
{
var response = Request.CreateResponse<string>(
HttpStatusCode.OK,
"Cookie Created Successfully !"
);
var cookie = new CookieHeaderValue("IEM", "Success");
cookie.Expires = DateTimeOffset.Now.AddMinutes(15);
cookie.Domain = Request.RequestUri.Host;
cookie.Path = "/";
response.Headers.AddCookies(new CookieHeaderValue[] { cookie });
return response;
}
public HttpResponseMessage CookieMessage()
{
var response=Request.CreateResponse(
HttpStatusCode.OK,
“已成功创建Cookie!”
);
var cookie=新CookieHeaderValue(“IEM”、“成功”);
cookie.Expires=DateTimeOffset.Now.AddMinutes(15);
cookie.Domain=Request.RequestUri.Host;
cookie.Path=“/”;
AddCookies(新的CookieHeaderValue[]{cookie});
返回响应;
}
您返回的是不受支持的类型。我确信该框架将永远无法序列化元组
。如果要修改响应头,只需返回HttpResponseMessage
这应该如您所期望的那样起作用:
public HttpResponseMessage CookieMessage()
{
var response = Request.CreateResponse<string>(
HttpStatusCode.OK,
"Cookie Created Successfully !"
);
var cookie = new CookieHeaderValue("IEM", "Success");
cookie.Expires = DateTimeOffset.Now.AddMinutes(15);
cookie.Domain = Request.RequestUri.Host;
cookie.Path = "/";
response.Headers.AddCookies(new CookieHeaderValue[] { cookie });
return response;
}
public HttpResponseMessage CookieMessage()
{
var response=Request.CreateResponse(
HttpStatusCode.OK,
“已成功创建Cookie!”
);
var cookie=新CookieHeaderValue(“IEM”、“成功”);
cookie.Expires=DateTimeOffset.Now.AddMinutes(15);
cookie.Domain=Request.RequestUri.Host;
cookie.Path=“/”;
AddCookies(新的CookieHeaderValue[]{cookie});
返回响应;
}
是否在调试器下运行它以查看引发了什么异常?@fahadash在Web API中,它返回时没有任何异常。我粘贴了回复。请检查一下。您是否在调试器下运行它以查看除了