Search code examples
c#apihttpwebrequesthttpwebresponsebitcoin

HttpWebResponse contentLength always -1


My web response content length always seem to be -1 after my web request. I'm sure you massage and signature are right. What am I doing wrong here?

            string msg = string.Format("{0}{1}{2}", nonce, clientId, apiKey);
            string signature = ByteArrayToString(SignHMACSHA256(apiSecret, StrinToByteArray(msg))).ToUpper();
            const string endpoint = "https://www.bitstamp.net/api/balance/";
            HttpWebRequest request = WebRequest.Create(endpoint) as HttpWebRequest;
            request.Proxy = null;
            request.Method = "POST";
            request.ContentType = "application/xml";
            request.Accept = "application/xml";
            request.Headers.Add("key", apiKey);
            request.Headers.Add("signature", signature);
            request.Headers.Add("nonce", nonce.ToString());
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

Solution

  • Got it working with webClient instead of the httpWebRequest. If someone can get it working with httpWebRequest, you wil get the answer.

                string msg = string.Format("{0}{1}{2}", nonce, clientId, apiKey);
                var signature = ByteArrayToString(SignHMACSHA256(apiSecret, StrinToByteArray(msg))).ToUpper();
                var path = "https://www.bitstamp.net/api/user_transactions/";
    
                using (WebClient client = new WebClient())
                {
    
                    byte[] response = client.UploadValues(path, new NameValueCollection()
                    {
                        { "key", apiKey },
                        { "signature", signature },
                        { "nonce", nonce.ToString()},
    
                    });
    
                    var str = System.Text.Encoding.Default.GetString(response);
                }