public IConsumerResponse Run(IConsumerRequest consumerRequest) { HttpWebRequest webRequest = consumerRequest.ToWebRequest(); IConsumerResponse consumerResponse = null; var stopwatch = Stopwatch.StartNew(); try { var httpWebResponse = webRequest.GetResponse() as HttpWebResponse; consumerResponse = new ConsumerResponse(httpWebResponse, GetElapsedTimespan(stopwatch)); } catch (WebException webEx) { // I *think* it's safe to assume that the response will always be a HttpWebResponse... HttpWebResponse httpWebResponse = (HttpWebResponse)(webEx.Response); if (httpWebResponse == null) { throw new ApplicationException("An HttpWebResponse could not be obtained from the WebException. Status was " + webEx.Status, webEx); } consumerResponse = new ConsumerResponse(httpWebResponse, webEx, GetElapsedTimespan(stopwatch)); } return consumerResponse; }
public IConsumerResponse Run(IConsumerRequest consumerRequest) { HttpWebRequest webRequest = consumerRequest.ToWebRequest(); IConsumerResponse consumerResponse = null; var stopwatch = Stopwatch.StartNew(); try { var httpWebResponse = webRequest.GetResponse() as HttpWebResponse; consumerResponse = new ConsumerResponse(httpWebResponse, GetElapsedTimespan(stopwatch)); } catch (WebException webEx) { // I *think* it's safe to assume that the response will always be a HttpWebResponse... HttpWebResponse httpWebResponse = (HttpWebResponse)(webEx.Response); if (httpWebResponse == null) { throw new ApplicationException("An HttpWebResponse could not be obtained from the WebException. Status was " + webEx.Status, webEx); } consumerResponse = new ConsumerResponse(httpWebResponse, webEx, GetElapsedTimespan(stopwatch)); } return(consumerResponse); }
public IConsumerResponse Run(IConsumerRequest consumerRequest) { HttpWebRequest webRequest = consumerRequest.ToWebRequest(); IConsumerResponse consumerResponse = null; try { consumerResponse = new ConsumerResponse(webRequest.GetResponse() as HttpWebResponse); } catch (WebException webEx) { // I *think* it's safe to assume that the response will always be a HttpWebResponse... HttpWebResponse httpWebResponse = (HttpWebResponse)(webEx.Response); if (httpWebResponse == null) { throw new ApplicationException("An HttpWebResponse could not be obtained from the WebException"); } consumerResponse = new ConsumerResponse(httpWebResponse, webEx); } return consumerResponse; }
public IConsumerResponse Run(IConsumerRequest consumerRequest) { HttpWebRequest webRequest = consumerRequest.ToWebRequest(); IConsumerResponse consumerResponse = null; var stopwatch = Stopwatch.StartNew(); try { var httpWebResponse = webRequest.GetResponse() as HttpWebResponse; consumerResponse = new ConsumerResponse(httpWebResponse, GetElapsedTimespan(stopwatch)); } catch (WebException webEx) { // I *think* it's safe to assume that the response will always be a HttpWebResponse... HttpWebResponse httpWebResponse = (HttpWebResponse)(webEx.Response); if (httpWebResponse == null) { //Generate a more helpful error message, hopefully this will save someone else hours in "the abyss" if (webEx.Message.ToLower().Contains("could not create ssl/tls secure channel")) { //Find out what certificates were in the web request var clientCerts = webRequest.ClientCertificates; var certString = ""; foreach (var clientCert in clientCerts) { var thumbprint = "unknown"; var name = "unknown"; var x509Certificate2 = clientCert as X509Certificate2; if (x509Certificate2 != null) { thumbprint = x509Certificate2.Thumbprint; name = x509Certificate2.GetNameInfo(X509NameType.SimpleName, false); } certString += String.Format("[name: \"{0}\", serial: \"{1}\", thumbprint: \"{2}\"] ", name, clientCert.GetSerialNumberString(), thumbprint); } //Try get the username that is running the current process (so we know who to give permissions to) var processUser = System.Security.Principal.WindowsIdentity.GetCurrent(); var userId = "your current process"; if (processUser != null) { userId = String.Format("\"{0}\"", processUser.Name); } throw new WebException(String.Format("{0} Check that {1} has permission to read the following certificates: {2}", webEx.Message, userId, certString)); } throw new ApplicationException("An HttpWebResponse could not be obtained from the WebException. Status was " + webEx.Status, webEx); } consumerResponse = new ConsumerResponse(httpWebResponse, webEx, GetElapsedTimespan(stopwatch)); } return consumerResponse; }
//DevDefined.OAuth library doesn't support multipart/form-data contentType //This method takes private void PostMultiPart(IConsumerRequest devDefinedRequest, FileInfo filePath) { try { HttpWebRequest request = devDefinedRequest.ToWebRequest(); var boundary = string.Format("----------{0:N}", Guid.NewGuid()); var content = new MemoryStream(); var writer = new StreamWriter(content); var fs = new FileStream(filePath.FullName, FileMode.Open, FileAccess.Read); var data = new byte[fs.Length]; fs.Read(data, 0, data.Length); fs.Close(); writer.WriteLine("--{0}", boundary); writer.WriteLine("Content-Disposition: form-data; name=\"file\"; filename=\"{0}\"", filePath.Name); writer.WriteLine("Content-Type: application/octet-stream"); writer.WriteLine(); writer.Flush(); content.Write(data, 0, data.Length); writer.WriteLine(); writer.WriteLine("--" + boundary + "--"); writer.Flush(); content.Seek(0, SeekOrigin.Begin); request.ContentType = string.Format("multipart/form-data; boundary={0}", boundary); request.ContentLength = content.Length; using (Stream requestStream = request.GetRequestStream()) { content.WriteTo(requestStream); content.Close(); writer.Close(); } using (var response = request.GetResponse()); } catch (WebException wex) { if (wex.Response != null) { using (var errorResponse = wex.Response as HttpWebResponse) { using (var reader = new StreamReader(errorResponse.GetResponseStream())) { ErrorResponse er = JsonConvert.DeserializeObject <ErrorResponse>(reader.ReadToEnd()); throw new JiraException(er); } } } else { ErrorResponse er = new ErrorResponse(); er.ErrorMessages = new string[1]; er.ErrorMessages[0] = wex.Message; throw new JiraException(er); } } }
public IConsumerResponse Run(IConsumerRequest consumerRequest) { HttpWebRequest webRequest = consumerRequest.ToWebRequest(); IConsumerResponse consumerResponse = null; var stopwatch = Stopwatch.StartNew(); try { var httpWebResponse = webRequest.GetResponse() as HttpWebResponse; consumerResponse = new ConsumerResponse(httpWebResponse, GetElapsedTimespan(stopwatch)); } catch (WebException webEx) { // I *think* it's safe to assume that the response will always be a HttpWebResponse... HttpWebResponse httpWebResponse = (HttpWebResponse)(webEx.Response); if (httpWebResponse == null) { //Generate a more helpful error message, hopefully this will save someone else hours in "the abyss" if (webEx.Message.ToLower().Contains("could not create ssl/tls secure channel")) { //Find out what certificates were in the web request var clientCerts = webRequest.ClientCertificates; var certString = ""; foreach (var clientCert in clientCerts) { var thumbprint = "unknown"; var name = "unknown"; var x509Certificate2 = clientCert as X509Certificate2; if (x509Certificate2 != null) { thumbprint = x509Certificate2.Thumbprint; name = x509Certificate2.GetNameInfo(X509NameType.SimpleName, false); } certString += String.Format("[name: \"{0}\", serial: \"{1}\", thumbprint: \"{2}\"] ", name, clientCert.GetSerialNumberString(), thumbprint); } //Try get the username that is running the current process (so we know who to give permissions to) var processUser = System.Security.Principal.WindowsIdentity.GetCurrent(); var userId = "your current process"; if (processUser != null) { userId = String.Format("\"{0}\"", processUser.Name); } throw new WebException(String.Format("{0} Check that {1} has permission to read the following certificates: {2}", webEx.Message, userId, certString)); } throw new ApplicationException("An HttpWebResponse could not be obtained from the WebException. Status was " + webEx.Status, webEx); } consumerResponse = new ConsumerResponse(httpWebResponse, webEx, GetElapsedTimespan(stopwatch)); } return(consumerResponse); }