Я пытаюсь вызвать 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;
}
Вы звоните в службу, используя метод POST, просматривая область комментариев в http://genderize.io/, автор утверждает, что разрешены только запросы метода GET.
Stroemgren: Yes, this is confirmed. Only HTTP GET request are allowed.
Этот ответ, вероятно, был бы лучше, как комментарий, но у меня недостаточно репутации :(
ContentType
иContentLength
линий.