У меня проблемы с отправкой POST-запроса в C #, и кажется, что я неправильно понял некоторые основы HTTP.Поэтому я в основном реализую сервис RESTfull client , который работает следующим образом:
- Сделайте POST-запрос с именем пользователя / паролем и получите токен
- Используйте этот токен взаголовок (Authorization: TOKEN) при выполнении других запросов GET / POST / PUT
Я использую WebRequest
для выполнения запросов GET (с заголовком Authorization), и он работает.Но когда я использую следующий код для выполнения запросов PUT, служба выдает сообщение «Ошибка аутентификации - не авторизован»:
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();
Я должен сделать небольшую ошибку (по крайней мере, я так надеюсь) при отправке POSTзапрос.Так что я делаю не так?
Спасибо.