2010-12-12 21 views
1

JSONレスポンスを消費しようとしていますが、非常に奇妙な動作が1つあります。エンドポイントはTomcat上で動作するJavaアプリケーションです。 私はJSONを読み込むオープン-uriのルビーを使用して、以下のURLPython urllibで予期しない動作が発生する

http://opendata.diavgeia.gov.gr/api/decisions?count=50&output=json_full&from=1 

をロードします。私がブラウザで打ち込んだら、私はまだ応答を得る。私はエラー

javax.servlet.ServletException: Could not resolve view with name 'jsonView' in servlet with name 'diavgeia-api' 

を取得するPythonのurllibはやurllib2のを使用しようとしたらそれは非常に奇妙だと私はエラーがAPIサーバにあると思います。何かヒント?

+0

ヒント:urllibと何か関係があった場合は、urllib例外が表示されます。 –

+0

コードを表示してください。 – jonesy

+0

私はブラウザからデータをプルダウンするとjsonになりますが、コマンドラインのcurlを使うとXMLが得られます。奇妙なことがサーバーで起こっていることを示唆しています。 –

答えて

5

のPythonを拒否:

>>> print urllib2.urlopen(
... urllib2.Request(
...  "http://opendata.diavgeia.gov.gr/api/decisions?count=50&output=json_full&from=1", 
...  headers={"accept": "*/*"})).read()[:200] 
{"model":{"queryInfo":{"total":117458,"count":50,"order":"desc","from":1},"expandedDecisions":[{"metadata":{"date":1291932000000,"tags":{"tag":[]},"decisionType":{"uid":27,"label":"ΔΑΠΑΝΗ","extr 
0

二つの水を保持どちらも可能性、:

  • サーバはHTTP 1.1を使用するだけで準備ができている(明らかにサポートしていないurllibは、しかし、urllib2のん)
  • それは盗聴ユーザーエージェントをやっています、そして、(私が代わりにFirefoxのUA文字列を使用してみましたが、それはまだ私にエラーを与えた)サーバは「受け入れる]ヘッダー必要があるように見えます
+0

私もurllib2を試しました。それはSimonJがそれを得たようだ! Thanx – PanosJee