Adicionar dados de cabeçalhos e postar na solicitação RESTfull / HTTP em C #

Estou tendo problemas com o envio de solicitação POST em c # e parece que eu entendi errado alguns princípios básicos de HTTP. Então, basicamente, estou implementando o serviço RESTfullclient, que funciona da seguinte maneira:

Faça a solicitação POST com nome de usuário / senha e obtenha o tokenUse esse token no cabeçalho (Autorização: TOKEN) enquanto faz outras solicitações GET / POST / PUT

Eu usoWebRequest para fazer solicitações GET (com cabeçalho de autorização) e está funcionando. Mas quando eu uso o código a seguir para fazer solicitações de PUT, o serviço está retornando a mensagem "A autenticação falhou - não está logado":

String url = String.Format("{0}/{1}", AN_SERVER, app);
WebRequest theRequest = WebRequest.Create(url);
theRequest.Method = "POST";

theRequest.ContentType = "text/x-json";
theRequest.ContentLength = json.Length;
Stream requestStream = theRequest.GetRequestStream();

requestStream.Write(Encoding.ASCII.GetBytes(json), 0, json.Length);
requestStream.Close();


theRequest.Headers.Add("Authorization", authToken);

HttpWebResponse response =  (HttpWebResponse)theRequest.GetResponse();

Devo estar cometendo um pequeno erro (pelo menos espero) ao enviar uma solicitação POST. Então, o que estou fazendo de errado?

Obrigado

questionAnswers(1)

yourAnswerToTheQuestion