protected internal void SetFormatter(System.Net.Http.Formatting.MediaTypeFormatter formatter) { if (formatter != null) { this.Formatter = formatter; } }
public Stream getRDF <T>(T value, string mediaType) where T : class { System.Net.Http.Formatting.MediaTypeFormatter formatter = theFormatter(value, mediaType); MediaTypeHeaderValue thisMediaType = theHeaderValue(mediaType); return(Serialize(formatter, value, thisMediaType)); }
public T getObjFromRDF <T>(T value, string mediaType, string rdfStr) where T : class { System.Net.Http.Formatting.MediaTypeFormatter formatter = theFormatter(value, mediaType); MediaTypeHeaderValue thisMediaType = theHeaderValue(mediaType); return(Deserialize(formatter, value, rdfStr, thisMediaType)); }
public string getRDFStr <T>(T value, string mediaType) where T : class { System.Net.Http.Formatting.MediaTypeFormatter formatter = theFormatter(value, mediaType); MediaTypeHeaderValue thisMediaType = theHeaderValue(mediaType); Stream tmpStream = Serialize(formatter, value, thisMediaType); return(Encoding.UTF8.GetString((tmpStream as MemoryStream).ToArray())); }
public static object Deserialize(this System.Net.Http.Formatting.MediaTypeFormatter formatter, Type type, string value) { if (value == null) { return(null); } var bytes = formatter.SupportedEncodings.First().GetBytes(value.Trim('\0')); var ms = new System.IO.MemoryStream(bytes); var task = formatter.ReadFromStreamAsync(type, ms, null, null); return(task.Result); }
///// <summary> ///// 序列化 ///// </summary> ///// <param name="formatter"></param> ///// <param name="value"></param> ///// <returns></returns> //public static string Serialize(this HttpContent httpContent) //{ // var ms = new System.IO.MemoryStream(); // var task = httpContent.WriteToStreamAsync(value.GetType(), value, ms, null, null); // task.Wait(); // return formatter.SupportedEncodings.First().GetString(ms.ToArray()); //} /// <summary> /// 序列化 /// </summary> /// <param name="formatter"></param> /// <param name="value"></param> /// <returns></returns> public static string Serialize(this System.Net.Http.Formatting.MediaTypeFormatter formatter, object value) { if (value == null) { return(string.Empty); } var ms = new System.IO.MemoryStream(); var task = formatter.WriteToStreamAsync(value.GetType(), value, ms, null, null); task.Wait(); return(formatter.SupportedEncodings.First().GetString(ms.ToArray())); }
private T Deserialize <T>(System.Net.Http.Formatting.MediaTypeFormatter formatter, T value, string str, MediaTypeHeaderValue mediaType) where T : class { Stream stream = new MemoryStream(); StreamWriter writer = new StreamWriter(stream); HttpContent content = new StreamContent(stream); content.Headers.ContentType = mediaType; writer.Write(str); writer.Flush(); stream.Position = 0; return(formatter.ReadFromStreamAsync(typeof(T), stream, content, logFormatter).Result as T); }
private System.Net.Http.Formatting.MediaTypeFormatter theFormatter <T>(T value, string mediaType) { System.Net.Http.Formatting.MediaTypeFormatter formatter = null; if (mediaType == OSLC4Net.Core.Model.OslcMediaType.APPLICATION_JSON) { formatter = new OSLC4Net.Core.JsonProvider.JsonMediaTypeFormatter(); } else if (mediaType == OSLC4Net.Core.Model.OslcMediaType.APPLICATION_RDF_XML) { ISet <System.Net.Http.Formatting.MediaTypeFormatter> formatters = new HashSet <System.Net.Http.Formatting.MediaTypeFormatter>(); formatters.Add(new RdfXmlMediaTypeFormatter()); formatter = new System.Net.Http.Formatting.MediaTypeFormatterCollection(formatters).FindWriter(value.GetType(), new System.Net.Http.Headers.MediaTypeHeaderValue(mediaType)); } return(formatter); }
private Stream Serialize <T>(System.Net.Http.Formatting.MediaTypeFormatter formatter, T value, System.Net.Http.Headers.MediaTypeHeaderValue mediaType) { Stream stream = new MemoryStream(); try { HttpContent content = new StreamContent(stream); content.Headers.ContentType = mediaType; formatter.WriteToStreamAsync(typeof(T), value, stream, content, null).Wait(); stream.Position = 0; } catch (Exception ex) { Console.WriteLine("Serialization error: " + ex.ToString()); } return(stream); }
static async Task RunAsync() { using (HttpClient client = new HttpClient()) { client.BaseAddress = new Uri("http://localhost:59241"); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/bson")); #region get var result = await client.GetAsync("api/books/1"); try { result.EnsureSuccessStatusCode(); } catch (Exception ex) { string s = ex.Message; } System.Net.Http.Formatting.MediaTypeFormatter[] formatters = new System.Net.Http.Formatting.MediaTypeFormatter[] { new System.Net.Http.Formatting.BsonMediaTypeFormatter() }; var book = await result.Content.ReadAsAsync <Book>(formatters); #endregion var book2 = new Book { AuthorID = 1, Title = "tutu", }; System.Net.Http.Formatting.BsonMediaTypeFormatter typeFormatter = new System.Net.Http.Formatting.BsonMediaTypeFormatter(); var result2 = await client.PostAsync("api/books", book2, typeFormatter); result2.EnsureSuccessStatusCode(); } }
public Task <HttpResponseMessage> PutAsync <T>(Uri requestUri, T value, System.Net.Http.Formatting.MediaTypeFormatter mediaTypeFormatter, IDictionary <string, string> customerHeaders = null) where T : class { return(GenerateResponseAsync(requestUri, HttpMethod.Put, value)); }
public static System.Threading.Tasks.Task <System.Net.Http.HttpResponseMessage> PutAsync <T>(this System.Net.Http.HttpClient client, string requestUri, T value, System.Net.Http.Formatting.MediaTypeFormatter formatter, string mediaType, System.Threading.CancellationToken cancellationToken) { throw null; }
public static void AddQueryStringMapping(this System.Net.Http.Formatting.MediaTypeFormatter formatter, string queryStringParameterName, string queryStringParameterValue, string mediaType) { }
public static void AddRequestHeaderMapping(this System.Net.Http.Formatting.MediaTypeFormatter formatter, string headerName, string headerValue, System.StringComparison valueComparison, bool isValueSubstring, string mediaType) { }
public static void AddMediaRangeMapping(this System.Net.Http.Formatting.MediaTypeFormatter formatter, string mediaRange, string mediaType) { }
public static void AddMediaRangeMapping(this System.Net.Http.Formatting.MediaTypeFormatter formatter, System.Net.Http.Headers.MediaTypeHeaderValue mediaRange, System.Net.Http.Headers.MediaTypeHeaderValue mediaType) { }
public ContentNegotiationResult(System.Net.Http.Formatting.MediaTypeFormatter formatter, System.Net.Http.Headers.MediaTypeHeaderValue mediaType) { }
public static T Deserialize <T>(this System.Net.Http.Formatting.MediaTypeFormatter formatter, string value) { return((T)Deserialize(formatter, typeof(T), value)); }
public IEnumerable <T> DeserializeCollection <T>( string strRDF, IEnumerable <T> value, string contentType, string descriptionAbout = null, string responseInfoAbout = null, string nextPageAbout = null) where T : class { if (String.IsNullOrEmpty(descriptionAbout)) { descriptionAbout = "http://com/undefined/descriptionAbout"; } if (String.IsNullOrEmpty(responseInfoAbout)) { responseInfoAbout = "http://com/undefined/responseInfoAbout"; } if (String.IsNullOrEmpty(responseInfoAbout)) { responseInfoAbout = "http://com/undefined/nextPageAbout"; } Stream stream = new MemoryStream(); StreamWriter writer = new StreamWriter(stream); HttpContent content = new StreamContent(stream); System.Net.Http.Formatting.MediaTypeFormatter formatter = null; if (contentType == OslcMediaType.APPLICATION_JSON) { JsonValue json = OSLC4Net.Core.JsonProvider.JsonHelper.CreateJson( descriptionAbout, responseInfoAbout, nextPageAbout, null, value, null); formatter = new OSLC4Net.Core.JsonProvider.JsonMediaTypeFormatter(json, false); content.Headers.ContentType = OslcMediaType.APPLICATION_JSON_TYPE; } else if (contentType == OslcMediaType.APPLICATION_RDF_XML) { IGraph rdfGraph = DotNetRdfHelper.CreateDotNetRdfGraph( descriptionAbout, responseInfoAbout, nextPageAbout, null, value, null); formatter = new RdfXmlMediaTypeFormatter(rdfGraph); content.Headers.ContentType = OslcMediaType.APPLICATION_RDF_XML_TYPE; } if (formatter == null) { return(null); } writer.Write(strRDF); writer.Flush(); stream.Position = 0; return(formatter.ReadFromStreamAsync(typeof(List <T>), stream, content, null).Result as IEnumerable <T>); }
protected internal virtual System.Net.Http.Formatting.MediaTypeFormatter GetMediaTypeFormatter(MediaType mediaType, params string[] supportedMediaTypes) { var rr = getMediaTypeFormatterFunc?.Invoke(mediaType, supportedMediaTypes); if (rr != null) { return(rr); } //bool setPropertySettingsFromAttributes = true, isContractNHibernateProxy = false; System.Net.Http.Formatting.MediaTypeFormatter formatter = null; switch (mediaType) { case MediaType.Json: formatter = new System.Net.Http.Formatting.JsonMediaTypeFormatter { Indent = true, SerializerSettings = new Newtonsoft.Json.JsonSerializerSettings { Formatting = Newtonsoft.Json.Formatting.Indented, //是否格式化缩进 NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore, //空值忽略 DefaultValueHandling = Newtonsoft.Json.DefaultValueHandling.Include, //序列化和反序列化时,包含默认值 ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore, //避免循环引用 PreserveReferencesHandling = Newtonsoft.Json.PreserveReferencesHandling.None, //序列化时保留引用。 DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc, //将所有日期转换成UTC格式 DateFormatHandling = Newtonsoft.Json.DateFormatHandling.IsoDateFormat, //JSON日期格式 Converters = new Newtonsoft.Json.JsonConverter[] { //new CamelCasePropertyNamesContractResolver(),//驼峰式大小写转换 new Newtonsoft.Json.Converters.StringEnumConverter(), //枚举转换成枚举名称字符串 //new Orchard.Utility.Json.LocalDateTimeConverter(), //new Orchard.Utility.Json.InterfaceConverter(), new Utilities.ExpandoObject2.Converters.ExpandoObject2Converter(), new Utilities.ExpandoObject2.Converters.DynamicJsonConverter(), //////new Newtonsoft.Json.Converters.MicrosoftJavaScriptDateTimeConverter(), //new TimestampConverter() //new Orchard.Utility.Json.NHibernateProxyConverter(isContractNHibernateProxy), //new Orchard.Utility.Json.EncodeNHibernateContractResolver(setPropertySettingsFromAttributes, isContractNHibernateProxy) }, Error = (currentObject, errorContext) => { } } }; this.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json")); break; case MediaType.Xml: formatter = new System.Net.Http.Formatting.XmlMediaTypeFormatter { Indent = true, UseXmlSerializer = true }; this.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/xml")); break; case MediaType.Bson: formatter = new System.Net.Http.Formatting.BsonMediaTypeFormatter { }; break; default: break; } foreach (var item in supportedMediaTypes ?? new string[] { }) { try { formatter.SupportedMediaTypes.Add(new System.Net.Http.Headers.MediaTypeHeaderValue(item)); //formatter.SupportedMediaTypes.Add(new System.Net.Http.Headers.MediaTypeHeaderValue("text/html")); } catch (Exception) { // throw; } } return(formatter); }
public ObjectContent(System.Type type, object value, System.Net.Http.Formatting.MediaTypeFormatter formatter, string mediaType) { }