//private static int interval; public static void Exec() { // get properties from file getProperties(); HttpWebRequest httpWebRequest; JavaScriptSerializer serializer; HttpWebResponse httpResponse; X509Certificate certificate1 = null; if (ssl) { using (WebClient client = new WebClient()) { client.DownloadFile(ssl_cert, "ssl.cert"); } certificate1 = new X509Certificate("ssl.cert"); } // get challenge httpWebRequest = (HttpWebRequest)WebRequest.Create(domain + ":" + authentication_port + url_challenge); serializer = new JavaScriptSerializer(); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "POST"; if (ssl) { httpWebRequest.ClientCertificates.Add(certificate1); } using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { hftRequest request = new hftRequest(); request.getAuthorizationChallenge = new getAuthorizationChallengeRequest(user); streamWriter.WriteLine(serializer.Serialize(request)); } httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); using (StreamReader streamReader = new StreamReader(httpResponse.GetResponseStream())) { hftResponse response; try { response = serializer.Deserialize <hftResponse>(streamReader.ReadLine()); challenge = response.getAuthorizationChallengeResponse.challenge; } catch (SocketException ex) { Console.WriteLine(ex.Message); } catch (IOException ioex) { Console.WriteLine(ioex.Message); } } // create challenge response String res = challenge; char[] passwordArray = password.ToCharArray(); foreach (byte passwordLetter in passwordArray) { int value = Convert.ToInt32(passwordLetter); string hexOutput = String.Format("{0:X}", value); res = res + hexOutput; } int NumberChars = res.Length; byte[] bytes = new byte[NumberChars / 2]; for (int i = 0; i < NumberChars; i += 2) { bytes[i / 2] = Convert.ToByte(res.Substring(i, 2), 16); } SHA1 sha = new SHA1CryptoServiceProvider(); byte[] tokenArray = sha.ComputeHash(bytes); string challengeresp = BitConverter.ToString(tokenArray); challengeresp = challengeresp.Replace("-", ""); // get token with challenge response httpWebRequest = (HttpWebRequest)WebRequest.Create(domain + ":" + authentication_port + url_token); serializer = new JavaScriptSerializer(); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "POST"; if (ssl) { httpWebRequest.ClientCertificates.Add(certificate1); } using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { hftRequest request = new hftRequest(); request.getAuthorizationToken = new getAuthorizationTokenRequest(user, challengeresp); streamWriter.WriteLine(serializer.Serialize(request)); } httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); using (StreamReader streamReader = new StreamReader(httpResponse.GetResponseStream())) { hftResponse response; try { response = serializer.Deserialize <hftResponse>(streamReader.ReadLine()); token = response.getAuthorizationTokenResponse.token; } catch (SocketException ex) { Console.WriteLine(ex.Message); } catch (IOException ioex) { Console.WriteLine(ioex.Message); } } // ----------------------------------------- // Prepare and send a modifyOrder request for two pending orders // ----------------------------------------- modOrder order1 = new modOrder(); order1.fixid = "TRD_20151007112351168_0128"; order1.price = 1.11005; order1.quantity = 20000; modOrder order2 = new modOrder(); order2.fixid = "TRD_20151007112401904_0127"; order2.price = 1.11006; order2.quantity = 30000; httpWebRequest = (HttpWebRequest)WebRequest.Create(domain + ":" + request_port + url_polling + URL); serializer = new JavaScriptSerializer(); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "POST"; if (ssl) { httpWebRequest.ClientCertificates.Add(certificate1); } using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { hftRequest request = new hftRequest(); request.modifyOrder = new modifyOrderRequest(user, token, new List <modOrder> { order1, order2 }); streamWriter.WriteLine(serializer.Serialize(request)); } // -------------------------------------------------------------- // Wait for response from server (polling) // -------------------------------------------------------------- httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); using (StreamReader streamReader = new StreamReader(httpResponse.GetResponseStream())) { hftResponse response; String line; try { while ((line = streamReader.ReadLine()) != null) { response = serializer.Deserialize <hftResponse>(line); if (response.modifyOrderResponse != null) { if (response.modifyOrderResponse.order != null) { foreach (modifyTick tick in response.modifyOrderResponse.order) { Console.WriteLine("Result from server: " + tick.fixid + "-" + tick.result); } } if (response.modifyOrderResponse.message != null) { Console.WriteLine("Message from server: " + response.modifyOrderResponse.message); } } } } catch (SocketException ex) { Console.WriteLine(ex.Message); } catch (IOException ioex) { Console.WriteLine(ioex.Message); } } }
//private static int interval; public static void Exec() { // get properties from file getProperties(); HttpWebRequest httpWebRequest; JavaScriptSerializer serializer; HttpWebResponse httpResponse; X509Certificate certificate1 = null; if (ssl) { using (WebClient client = new WebClient()) { client.DownloadFile(ssl_cert, "ssl.cert"); } certificate1 = new X509Certificate("ssl.cert"); } // get challenge httpWebRequest = (HttpWebRequest)WebRequest.Create(domain + ":" + authentication_port + url_challenge); serializer = new JavaScriptSerializer(); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "POST"; if (ssl) { httpWebRequest.ClientCertificates.Add(certificate1); } using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { hftRequest request = new hftRequest(); request.getAuthorizationChallenge = new getAuthorizationChallengeRequest(user); streamWriter.WriteLine(serializer.Serialize(request)); } httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); using (StreamReader streamReader = new StreamReader(httpResponse.GetResponseStream())) { hftResponse response; try { response = serializer.Deserialize<hftResponse>(streamReader.ReadLine()); challenge = response.getAuthorizationChallengeResponse.challenge; } catch (SocketException ex) { Console.WriteLine(ex.Message); } catch (IOException ioex) { Console.WriteLine(ioex.Message); } } // create challenge response String res = challenge; char[] passwordArray = password.ToCharArray(); foreach (byte passwordLetter in passwordArray) { int value = Convert.ToInt32(passwordLetter); string hexOutput = String.Format("{0:X}", value); res = res + hexOutput; } int NumberChars = res.Length; byte[] bytes = new byte[NumberChars / 2]; for (int i = 0; i < NumberChars; i += 2) { bytes[i / 2] = Convert.ToByte(res.Substring(i, 2), 16); } SHA1 sha = new SHA1CryptoServiceProvider(); byte[] tokenArray = sha.ComputeHash(bytes); string challengeresp = BitConverter.ToString(tokenArray); challengeresp = challengeresp.Replace("-", ""); // get token with challenge response httpWebRequest = (HttpWebRequest)WebRequest.Create(domain + ":" + authentication_port + url_token); serializer = new JavaScriptSerializer(); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "POST"; if (ssl) { httpWebRequest.ClientCertificates.Add(certificate1); } using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { hftRequest request = new hftRequest(); request.getAuthorizationToken = new getAuthorizationTokenRequest(user, challengeresp); streamWriter.WriteLine(serializer.Serialize(request)); } httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); using (StreamReader streamReader = new StreamReader(httpResponse.GetResponseStream())) { hftResponse response; try { response = serializer.Deserialize<hftResponse>(streamReader.ReadLine()); token = response.getAuthorizationTokenResponse.token; } catch (SocketException ex) { Console.WriteLine(ex.Message); } catch (IOException ioex) { Console.WriteLine(ioex.Message); } } // ----------------------------------------- // Prepare and send a modifyOrder request for two pending orders // ----------------------------------------- modOrder order1 = new modOrder(); order1.fixid = "TRD_20151007112351168_0128"; order1.price = 1.11005; order1.quantity = 20000; modOrder order2 = new modOrder(); order2.fixid = "TRD_20151007112401904_0127"; order2.price = 1.11006; order2.quantity = 30000; httpWebRequest = (HttpWebRequest)WebRequest.Create(domain + ":" + request_port + url_polling + URL); serializer = new JavaScriptSerializer(); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "POST"; if (ssl) { httpWebRequest.ClientCertificates.Add(certificate1); } using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())) { hftRequest request = new hftRequest(); request.modifyOrder = new modifyOrderRequest(user, token, new List<modOrder> { order1, order2 }); streamWriter.WriteLine(serializer.Serialize(request)); } // -------------------------------------------------------------- // Wait for response from server (polling) // -------------------------------------------------------------- httpResponse = (HttpWebResponse)httpWebRequest.GetResponse(); using (StreamReader streamReader = new StreamReader(httpResponse.GetResponseStream())) { hftResponse response; String line; try { while ((line = streamReader.ReadLine()) != null) { response = serializer.Deserialize<hftResponse>(line); if (response.modifyOrderResponse != null) { if (response.modifyOrderResponse.order != null) { foreach (modifyTick tick in response.modifyOrderResponse.order) { Console.WriteLine("Result from server: " + tick.fixid + "-" + tick.result); } } if (response.modifyOrderResponse.message != null) { Console.WriteLine("Message from server: " + response.modifyOrderResponse.message); } } } } catch (SocketException ex) { Console.WriteLine(ex.Message); } catch (IOException ioex) { Console.WriteLine(ioex.Message); } } }