有人在对HttpRequestMessage对象进行序列化方面有经验吗?我试过使用Json.net,部分功能可行。但是,由于StringContent的构造问题,JsonConvert.DeserializeObject失败,报错"无法找到用于类型System.Net.Http.StringContent的构造函数"。
这里的应用场景简而言之就是我想保存网络请求并在以后发出它,在暂时的网络问题或服务不可用等情况下使用。
以下是示例代码:
var request = new HttpRequestMessage(HttpMethod.POST, "http://www.something.com");
request.Headers.Date = DateTimeOffset.UtcNow;
request.Headers.AcceptLanguage.Add(new System.Net.Http.Headers.StringWithQualityHeaderValue("en-US"));
request.Content = new StringContent("Hello World!");
request.Content.Headers.Add("x-some", "thing");
var result = JsonConvert.SerializeObject(request, new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.Objects,
TypeNameAssemblyFormat = System.Runtime.Serialization.Formatters.FormatterAssemblyStyle.Full
});
var deserializeRequest = JsonConvert.DeserializeObject<HttpRequestMessage>(result, new JsonSerializerSettings
{
TypeNameHandling = TypeNameHandling.Objects
});
https://username:password@server.example.com
。 - dstj