/// <summary> /// Performs an HTTP request to an URL using the specified method and data, returning the response as a string /// </summary> protected virtual LatchResponse HTTP(Uri URL, HttpVerbs method, IDictionary<string, string> headers, IDictionary<string, string> data) { HttpWebRequest request = BuildHttpUrlConnection(URL, headers); if (request == null) { throw new HttpException("Request could not be created correctly"); } request.Method = method.ToString(); try { if (method.Equals(HttpVerbs.Post) || method.Equals(HttpVerbs.Put)) { request.ContentType = HTTP_HEADER_CONTENT_TYPE_FORM_URLENCODED; using (StreamWriter sw = new StreamWriter(request.GetRequestStream())) { sw.Write(GetSerializedParams(data)); sw.Flush(); } } using (StreamReader sr = new StreamReader(request.GetResponse().GetResponseStream())) { string json = sr.ReadToEnd(); return new LatchResponse(json); } } catch (Exception) { return null; } }