2012-03-02 10 views
1

REST Webサービスにアクセスしようとしていますが、HTTP 500エラーが発生しました。正しくはないものの、見つからないものがあります。それは公に利用できるサービスです、そうでなければ私は403のエラーを得たでしょう。ここでC#からRESTサービスを呼び出す:エラー500

は私のコードです: (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(); 
+0

は、url変数の値とparam変数を参照する必要があります。 500は内部サーバーエラーです。サービスが不安定であるか、処理方法がわからないデータが渡されたことを意味します。 –

+0

Webサービスがjsonを受け入れることは確かですか?すべてではありません。 –

+0

はい、これはJSONを受け入れます。私はフィドラーの跡からそれを知っています。 – Farhan

答えて

0

私が最初に理解できなかったことは、どのIPでもJSON要求を行うことができないということでした。先に進む前にIPをチェックします。私がやっていたエラーは途方もなくだったので、あまり助けにならなかった。

ありがとうございます。

0

param 

の種類は、あなたがどのようなものですこれがjsonであることを確認しますか?

フィドラーでリクエストが表示される場合は、フィドラーの文字列を送信して、.netインフラストラクチャコードが機能していることを確認してください。

しかし、最善のことは、サーバーからの情報を取得することです。これは、500は内部サーバーエラーであると言われています。エラーの説明は何が間違っているかを指摘するでしょう。

+0

ありがとうb0rg。変数paramは文字列です。 – Farhan

+0

私はちょうど「フィドラーから文字列を送信する」ということは何を意味するのか正確にはわかりません。私がそこに入る応答を見るために、同じような要求をフィドラーから送ろうとするべきですか? – Farhan

+1

@MuhammadGhazi Fiddlerはトラフィックをキャプチャすることができるので、単にFiddlerをオンにして、試したのと同じ方法でWebサービスにアクセスすることができます。フィドラーが記録するものを参照してください。 –

関連する問題