EthereumRpc.RpcConnector.MakeRequest C# (CSharp) Method

MakeRequest() public method

public MakeRequest ( RpcRequest rpcRequest ) : RpcResult
rpcRequest RpcRequest
return RpcResult
        public RpcResult MakeRequest(RpcRequest rpcRequest)
        {
            if(ConnectionOptions==null)
                throw new Exception("ConnectionOptions property hasnt been set");

            if(!ConnectionOptions.IsUrlValid)
                throw new EthereumRpcException(string.Format("Specified address '{0}:{1}' is not valid", ConnectionOptions.Url, ConnectionOptions.Port));

            var webRequest = (HttpWebRequest)WebRequest.Create(ConnectionOptions.FullUrl);

            if (ConnectionOptions.NetworkCredential != null)
            {
                //SetBasicAuthHeader(webRequest, _coinService.Parameters.RpcUsername, _coinService.Parameters.RpcPassword);
                webRequest.Credentials = ConnectionOptions.NetworkCredential;
            }

            webRequest.ContentType = "application/json-rpc";
            webRequest.Method = "POST";
            webRequest.Proxy = ConnectionOptions.Proxy;
            webRequest.Timeout = ConnectionOptions.TimeOut;

            var data = rpcRequest.ToJson();

            var byteArray = Encoding.UTF8.GetBytes(data);
            webRequest.ContentLength = byteArray.Length;

            try
            {
                using (var dataStream = webRequest.GetRequestStream())
                {
                    dataStream.Write(byteArray, 0, byteArray.Length);
                    dataStream.Dispose();
                }
            }
            catch (WebException exception)
            {

                throw new EthereumRpcException(string.Format("Could not connect to ethereum on network address {0}:{1}. Check Ethereum is running and the correct port is specified (8545 for live)", ConnectionOptions.Url, ConnectionOptions.Port));
            }
            catch (Exception exception)
            {
                throw exception;
                //throw new RpcException("There was a problem sending the request to the wallet", exception);
            }

            try
            {
                String json;

                using (var webResponse = webRequest.GetResponse())
                {
                    using (var stream = webResponse.GetResponseStream())
                    {
                        using (var reader = new StreamReader(stream))
                        {
                            var result = reader.ReadToEnd();

                            reader.Dispose();
                            json = result;
                        }
                    }
                }

                var rpcResult = JsonConvert.DeserializeObject<RpcResult>(json);
                return rpcResult;
            }
            catch (WebException webException)
            {
                throw new EthereumRpcException(string.Format("Ethereum returned unknown response"));
            }

            return null;
        }
RpcConnector