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