1

I am trying to call JSON RPS API Using C#. I have added my own IP address with its credentials.

Before writing API in C#, I have installed Bitcoin on my server. Now, using the server details, i would like to test the API whether it is working or not.

Here is the program.cs file.

public static void Main(string[] args)
    {
        var data = RequestServer("getaccount", new List<string>() { "value"});
        Console.WriteLine(data);
        Console.ReadKey();
    }

    public static async Task<string> RequestServer(string methodName, List<string> parameters)
    {

        string ServerIp = "http://***.***.**.***:8333";
        string UserName = "root";
        string Password = "********";
        HttpWebRequest webRequest = HttpWebRequest.CreateHttp(ServerIp);
        webRequest.Credentials = new NetworkCredential(UserName, Password);

        webRequest.ContentType = "application/json-rpc";
        webRequest.Method = "POST";

        HttpClient cli = new HttpClient();
        cli.DefaultRequestHeaders.ExpectContinue = false;

        string respVal = string.Empty;

        JObject joe = new JObject();
        joe.Add(new JProperty("jsonrpc", "1.0"));
        joe.Add(new JProperty("id", "1"));
        joe.Add(new JProperty("method", methodName));

        JArray props = new JArray();
        foreach (var parameter in parameters)
        {
            props.Add(parameter);
        }

        joe.Add(new JProperty("params", props));

        // serialize json for the request
        string s = JsonConvert.SerializeObject(joe);
        byte[] byteArray = Encoding.UTF8.GetBytes(s);
        Stream dataStream =await webRequest.GetRequestStreamAsync();
        dataStream.Write(byteArray, 0, byteArray.Length);
        dataStream.Dispose();

        StreamReader streamReader = null;
        try
        {
            HttpWebResponse webResponse = await webRequest.GetResponseAsync() as HttpWebResponse;

            streamReader = new StreamReader(webResponse.GetResponseStream(), true);

            respVal = streamReader.ReadToEnd();
            var data = JsonConvert.DeserializeObject(respVal).ToString();
            return data;
        }
        catch (Exception exp)
        {
            Console.WriteLine(exp.InnerException.Message);
        }
        finally
        {
            if (streamReader != null)
            {
                streamReader.Dispose();
            }

        }
        return string.Empty;
    }
}

Can any one help me to test the api using my server details please?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.