Вызов службы REST из C #: ошибка 500 - PullRequest
1 голос
/ 02 марта 2012

Я пытаюсь получить доступ к веб-службе REST, но получаю сообщение об ошибке HTTP 500. Должно быть что-то, что я делаю неправильно, но не могу найти.Это общедоступный сервис, в противном случае я получил бы ошибку 403.

Вот мой код: (url - строка, содержащая URL-адрес веб-службы, param - строка, содержащая параметры.)

        string url = @"http://crimemapping.edmontonpolice.ca/DataProvider.asmx/getOccurrenceInfo";
        string param = "{\"method\":\"send\",\"params\":[\"neighbourhoodID\":\"2\",\"crimeTypes\":\"Assault\",\"strStartDate\":\"2011,12,02\",\"strEndDate\":\"2012,03,01\"]}";
        // Reassigning param to increase readability.
        param = @"{""method"":""send"",""params"":[""neighbourhoodID"":""2"",""crimeTypes"":""Assault;Sexual Assaults;Break and Enter;Theft From Vehicle;Homicide;Theft Of Vehicle;Robbery;Theft Over $5000"",""strStartDate"":""2012,02,01"",""strEndDate"":""2012,03,01""]}";

        string response;
        WebRequest request = WebRequest.Create(url);
        request.Method = "POST"; //REST based-services using Post method
        request.ContentType = "application/json"; //tells request the content typs is JSON
        request.ContentLength = param.Length;

        StreamWriter requestWriter = new StreamWriter(request.GetRequestStream(), System.Text.Encoding.ASCII);
        requestWriter.Write(param);
        requestWriter.Close();

        StreamReader responseReader = new StreamReader(request.GetResponse().GetResponseStream());
        response = responseReader.ReadToEnd();
        responseReader.Close();

Ответы [ 2 ]

0 голосов
/ 31 августа 2012

Вначале я не мог понять, что запрос JSON не может быть сделан ни одним IP.Он проверяет IP, прежде чем продолжить.Ошибка, которую я получал, была очень далека, поэтому она не сильно помогла.

Спасибо всем.

0 голосов
/ 02 марта 2012

какой тип

param 

Вы уверены, что это json?

Если вы видите запрос в fiddler, просто отправьте строку из fiddler, чтобы убедиться, что ваш .netкод инфраструктуры работает.

Но лучше всего получить информацию с сервера, поскольку упоминалось, что 500 - внутренняя ошибка сервера.В описании ошибки будет указано, что не так.

...