/// <summary> /// Event handler in the case that the JSON submit button is clicked. /// Sends a JSON request to the Global Email API, recieves the response, /// and formats the response onto the application /// </summary> /// <param name="sender">button that was clicked</param> /// <param name="e">event args</param> private void Btn_submitJSON_Click(object sender, EventArgs e) { out_rawOutput.Text = string.Empty; Stopwatch watch = new Stopwatch(); watch.Start(); ClearOutput(); btn_submitJSON.Enabled = false; btn_submitREST.Enabled = false; String finalURL = serviceURL + serviceURI; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(finalURL)); request.Method = "POST"; request.Accept = "application/json"; request.Headers.Add(HttpRequestHeader.AcceptEncoding, "gzip,deflate"); request.AutomaticDecompression = DecompressionMethods.GZip; Byte[] data = UTF8Encoding.UTF8.GetBytes(jsonRequest.Text); Stream reqStream; try { reqStream = request.GetRequestStream(); reqStream.Write(data, 0, data.Length); if (!reqStream.Equals(null)) { reqStream.Close(); } } catch (Exception exception) { MessageBox.Show("Error: " + exception.Message); } HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream outStream = CopyAndClose(response.GetResponseStream()); StreamReader reader = new StreamReader(outStream); String rawData = reader.ReadToEnd(); outStream.Position = 0; System.Runtime.Serialization.Json.DataContractJsonSerializer jsonSerializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(GEmailResponse)); GEmailResponse outputData = (GEmailResponse)jsonSerializer.ReadObject(outStream); watch.Stop(); try { //Return output elements to their corresponding text boxes out_version.Text += outputData.Version + " ("; out_version.Text += finalURL + ")"; out_transRef.Text = outputData.TransmissionReference; out_transResults.Text = outputData.TransmissionResults; out_recID.Text = outputData.Records[0].RecordID; out_results.Text = outputData.Records[0].Results; out_emailAddress.Text = outputData.Records[0].EmailAddress; out_mailboxName.Text = outputData.Records[0].MailboxName; out_domainName.Text = outputData.Records[0].DomainName; out_topLevelDomain.Text = outputData.Records[0].TopLevelDomain; out_topLevelDomainName.Text = outputData.Records[0].TopLevelDomainName; out_dateChecked.Text = outputData.Records[0].DateChecked; TimeSpan ts = watch.Elapsed; out_transResults.Text = String.Format("{0:00}.{1:00}", ts.Seconds, ts.Milliseconds / 10) + " second(s) elapsed"; rawData = rawData.Replace("{", "{" + Environment.NewLine + "\t"); rawData = rawData.Replace("}", Environment.NewLine + "}"); rawData = rawData.Replace("\",", "\"," + Environment.NewLine + "\t"); out_rawOutput.Text = rawData; } catch (Exception ex) { if (outputData.TransmissionResults == "GE04") { MessageBox.Show("CustomerID is empty.\n Please enter a valid Customer ID or contact a Melissa Data sales rep for more info."); } else if (outputData.TransmissionResults == "GE05") { MessageBox.Show("CustomerID is invalid.\n Please enter a valid Customer ID or contact a Melissa Data sales rep for more info."); } else if (outputData.TransmissionResults == "GE06") { MessageBox.Show("CustomerID is disable for this service.\n Please contact your Sales Rep for more info."); } else { Debug.WriteLine("Something bad happened with request: " + ex); } } btn_submitJSON.Enabled = true; btn_submitREST.Enabled = true; }
/// <summary> /// Event handler in the case that the REST submit button is clicked. /// Sends a REST request to the Global Email API, recieves the response, /// and formats the response onto the application /// </summary> /// <param name="sender"> button that was clicked</param> /// <param name="e">event arguments</param> private void Btn_submitREST_Click(object sender, EventArgs e) { out_rawOutput.Text = string.Empty; Stopwatch watch = new Stopwatch(); btn_submitREST.Enabled = false; btn_submitJSON.Enabled = false; watch.Start(); ClearOutput(); //Create the request and response objects HttpWebRequest request = (HttpWebRequest)WebRequest.Create(GenerateRESTRequest()); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream outStream = CopyAndClose(response.GetResponseStream()); StreamReader reader = new StreamReader(outStream); String rawData = reader.ReadToEnd(); outStream.Position = 0; System.Runtime.Serialization.Json.DataContractJsonSerializer jsonSerializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(typeof(GEmailResponse)); GEmailResponse outputData = (GEmailResponse)jsonSerializer.ReadObject(outStream); watch.Stop(); //Write responses out to their specified txt boxes try { out_version.Text = outputData.Version; out_transRef.Text = outputData.TransmissionReference; out_transResults.Text = outputData.TransmissionResults; out_recID.Text = outputData.Records[0].RecordID; out_results.Text = outputData.Records[0].Results; out_emailAddress.Text = outputData.Records[0].EmailAddress; out_mailboxName.Text = outputData.Records[0].MailboxName; out_domainName.Text = outputData.Records[0].DomainName; out_topLevelDomain.Text = outputData.Records[0].TopLevelDomain; out_topLevelDomainName.Text = outputData.Records[0].TopLevelDomainName; out_dateChecked.Text = outputData.Records[0].DateChecked; //Output raw data rawData = rawData.Replace("{", "{" + Environment.NewLine + "\t"); rawData = rawData.Replace("}", Environment.NewLine + "}"); rawData = rawData.Replace("\",", "\"," + Environment.NewLine + "\t"); out_rawOutput.Text = rawData; //Timer TimeSpan ts = watch.Elapsed; out_transResults.Text = String.Format("{0:00}.{1:00}", ts.Seconds, ts.Milliseconds / 10) + " second(s) elapsed"; } catch (Exception ex) { if (outputData.TransmissionResults == "GE04") { MessageBox.Show("CustomerID is empty.\n Please enter a valid Customer ID or contact a Melissa Data sales rep for more info."); } else if (outputData.TransmissionResults == "GE05") { MessageBox.Show("CustomerID is invalid.\n Please enter a valid Customer ID or contact a Melissa Data sales rep for more info."); } else if (outputData.TransmissionResults == "GE06") { MessageBox.Show("CustomerID is disable for this service.\n Please contact your Sales Rep for more info."); } else { Debug.WriteLine("An error has occured in rest request: " + ex); } } btn_submitREST.Enabled = true; btn_submitJSON.Enabled = true; }