internal ContentType ExtractContentTypeFromResponse(IHttpWebResponse response) { ContentType result; if (HttpConverter.TryParseContentType(response.ContentType, out result)) { return(result); } var headers = response.Headers; const ContentType fallback = ContentType.ApplicationJson; if (headers == null) { return(fallback); } var contentTypeHeader = headers[HttpResponseHeader.ContentType]; if (contentTypeHeader == null) { return(fallback); } var contentType = HttpConverter.ContentType(contentTypeHeader); return(contentType); }
public WebRequester WithPayload(object data, ContentType type) { _contentTypeProvider = () => type; _payloadModifilerAsync = async req => { if (data == null) { return; } var serializer = _config.Advanced.Serializers.FirstOrDefault(s => s.ContentType.Contains(_contentTypeProvider())); if (serializer == null) { throw new Exception(string.Format("No Serializer registered for {0}", type)); } var serializedPayload = serializer.Serialize(data); var payloadAsBytes = Encoding.UTF8.GetBytes(serializedPayload); req.ContentLength = payloadAsBytes.Length; req.ContentType = HttpConverter.ContentType(_contentTypeProvider()); using (var stream = await Task <Stream> .Factory.FromAsync(req.BeginGetRequestStream, req.EndGetRequestStream, req)) { await stream.WriteAsync(payloadAsBytes, 0, payloadAsBytes.Length); } }; return(this); }
public void ShouldThrowExceptionIfStringDoesNotMatchContentType() { /* Setup */ const string nonMatch = "This is not a content type"; /* Test & Assert */ Assert.Throws <ArgumentException>(() => HttpConverter.ContentType(nonMatch)); }
public void ShouldThrowExceptionIfContentTypeIsUnknown() { /* Setup */ var type = ContentType.Unknown; /* Test & Assert */ Assert.Throws <ArgumentException>(() => HttpConverter.ContentType(type)); }
public void ShouldConvertContentTypeStringToEnum(string type, ContentType expectedResult) { /* Setup */ /* Test */ var result = HttpConverter.ContentType(type); /* Assert */ Assert.That(result, Is.EqualTo(expectedResult)); }