Вызовите API Genderize.io из C #

1

Я пытаюсь вызвать http://genderize.io/, но я получаю сообщение об ошибке.NET:

{"You must provide a request body if you set ContentLength>0 or SendChunked==true.  Do this by calling [Begin]GetRequestStream before [Begin]GetResponse."}

Как я могу назвать этот веб-сервис " http://api.genderize.io/?name=peter " с С# и получить строку JSON?

HttpWebRequest request;
                string postData = "name=peter"
    URL = "http://api.genderize.io/?"
                Uri uri = new Uri(URL + postData);
                request = (HttpWebRequest)WebRequest.Create(uri);

                request.Method = "POST";

                request.ContentType = "application/x-www-form-urlencoded";
                request.ContentLength = postData.Length;

                request.AllowAutoRedirect = true;

                UTF8Encoding enc = new UTF8Encoding();

                string result = string.Empty;

                HttpWebResponse Response;
                try
                {
                    using (Response = (HttpWebResponse)request.GetResponse())
                    {
                        using (Stream responseStream = Response.GetResponseStream())
                        {
                            using (StreamReader readStream = new StreamReader(responseStream, Encoding.UTF8))
                            {
                                return readStream.ReadToEnd();
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    Debug.WriteLine("Error: " + ex.Message);
                    throw ex;
                }
Теги:
web-services
http-post

1 ответ

3
Лучший ответ

Вы звоните в службу, используя метод POST, просматривая область комментариев в http://genderize.io/, автор утверждает, что разрешены только запросы метода GET.

Stroemgren: Yes, this is confirmed. Only HTTP GET request are allowed.


Этот ответ, вероятно, был бы лучше, как комментарий, но у меня недостаточно репутации :(

  • 0
    Даже если я использую get, {"Content-Length или Chunked Encoding нельзя установить для операции, которая не записывает данные."}
  • 1
    Вы хотите избавиться от ContentType и ContentLength линий.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню