Я пытаюсь отправить простой запрос POST в веб-службу REST и распечатать ответ (код ниже, в основном, взят из документации разработчика Yahoo! и фрагментов кода MSDN, предоставленных вместе с некоторой документацией). Я ожидаю, что клиент отправит:
Метод запроса: POST (т.е. я ожидаю $ _SERVER ['REQUEST_METHOD'] == 'POST' в PHP)
Данные: foo = bar (то есть $ _POST ['foo'] == 'bar' в PHP)
Тем не менее, похоже, что отправка:
Метод запроса: FOO = BARPOST
Данные: (пусто)
Я знаю, что API работает, поскольку я тестировал его с клиентами, написанными на Python и PHP, поэтому я почти уверен, что это должно быть проблемой с моим C #. Я не программист .NET по профессии, поэтому был бы признателен за любые комментарии / указания о том, как выяснить, в чем проблема - я уверен, что это что-то тривиальное, но я не могу определить это сам.
переменные uri, user и password установлены ранее в коде - они отлично работают с GET-запросами.
request = (HttpWebRequest) WebRequest.Create(uri);
request.Credentials = new NetworkCredential(user, password);
request.Method = WebRequestMethods.Http.Post;
request.ContentType = "application/x-www-form-urlencoded";
string postData = "foo=bar";
request.ContentLength = postData.Length;
StreamWriter postStream = new StreamWriter(request.GetRequestStream(), System.Text.Encoding.ASCII);
postStream.Write(postData);
postStream.Close();
response = (HttpWebResponse) request.GetResponse();
API REST написан на PHP, а массив $ _POST на сервере пуст при использовании клиента C #.