public async Task DeleteEntity(WebResourceName uri, string etag) { s_logger.DebugFormat("Deleting entity '{0}'", uri); var absoluteEventUrl = new Uri(_serverUrl, uri.OriginalAbsolutePath); s_logger.DebugFormat("Absolute entity location: '{0}'", absoluteEventUrl); IHttpHeaders responseHeaders = await _webDavClient.ExecuteWebDavRequestAndReturnResponseHeaders( absoluteEventUrl, "DELETE", null, etag, null, null, string.Empty); IEnumerable <string> errorValues; if (responseHeaders.TryGetValues("X-Dav-Error", out errorValues)) { var errorList = errorValues.ToList(); if (errorList.Any(v => v != "200 No error")) { throw new Exception(string.Format("Error deleting entity with url '{0}' and etag '{1}': {2}", uri, etag, string.Join(",", errorList))); } } }
/// <summary> /// Gets the HTTP header value or the given <paramref name="defaultValue"/>. /// </summary> /// <param name="headers">The headers to get the value from</param> /// <param name="name">The header name to get the value for</param> /// <param name="defaultValue">The default value when the header value couldn't be found in the headers.</param> /// <returns>The first HTTP header value or the given <paramref name="defaultValue"/>.</returns> public static string GetValue(this IHttpHeaders headers, string name, string defaultValue) { IEnumerable <string> values; if (!headers.TryGetValues(name, out values)) { return(defaultValue); } return(values.FirstOrDefault() ?? defaultValue); }
public HttpWebResponseContent(IHttpHeaders headers, HttpWebResponse response) { Headers = headers; _response = response; IEnumerable<string> contentLength; if (headers.TryGetValues("content-length", out contentLength)) { var headerValue = contentLength.FirstOrDefault(); if (headerValue != null) _contentLength = long.Parse(headerValue); } }
/// <summary> /// Initializes a new instance of the <see cref="HttpWebResponseContent"/> class. /// </summary> /// <param name="headers">The HTTP headers for the response content</param> /// <param name="response">The response</param> public HttpWebResponseContent([NotNull] IHttpHeaders headers, [CanBeNull] HttpWebResponse response) { Headers = headers; _response = response; IEnumerable <string> contentLength; if (headers.TryGetValues("content-length", out contentLength)) { var headerValue = contentLength.FirstOrDefault(); if (headerValue != null) { _contentLength = long.Parse(headerValue); } } }