繁体   English   中英

从C#调用REST服务:错误500

[英]Calling REST Service from C#: Error 500

我正在尝试访问REST Web服务,但收到HTTP 500错误。必须正确执行某些操作,但找不到。 这是一个公开可用的服务,否则我将收到403错误。

这是我的代码:(URL是包含Web服务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();

我一开始不知道是JSON请求不能由任何IP发出。 它会在继续操作之前检查IP。 我遇到的错误已经消失了,所以并没有太大帮助。

谢谢大家

什么类型的

param 

您确定这是json吗?

如果您可以在fiddler中看到请求,只需从fiddler发送字符串以验证.net基础结构代码是否正常。

但是最好的办法是从服务器获取信息,因为有人提到500是服务器内部错误。 错误说明将指出错误所在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM