0

このページを読み込んで呼び出される json 応答を取得しようとしています: http://www.nzracing.co.nz/RaceInfo.aspx

Fiddler2 は、このページがhttp://www.nzracing.co.nz/ServerScript/RaceInfo.aspx/GetCalendarEventsから json コンテンツを取得し、開始日と終了日を渡していることを示しています。例: {'start':'26-May-2013', '終了':'2013 年 7 月 7 日'}

このコンテンツを取得しようとしていますが、取得できるのは空の文字列だけです。これは私の機能です:

Public Function GetPage() As String

    Dim url As String = "http://www.nzracing.co.nz/ServerScript/RaceInfo.aspx/GetCalendarEvents"
    Dim json As String = "{'start':'26-May-2013', 'end':'07-Jul-2013'}"
    Dim request As HttpWebRequest = WebRequest.Create(url)

    request.ContentType = "text/json"
    request.Method = "POST"

    Dim streamWriter = New StreamWriter(request.GetRequestStream())
    streamWriter.Write(json)

    Dim httpResponse As HttpWebResponse = request.GetResponse()

    Dim streamReader As StreamReader = New StreamReader(httpResponse.GetResponseStream())
    Dim responseText = streamReader.ReadToEnd()

    Return responseText
End Function

responseText は空の文字列です。過去にWebコンテンツを取得したとき(従来のget/post、以前はjsonなし)、リファラーが必要になることがあったので、追加してみました

    request.Referer = "http://www.nzracing.co.nz/RaceInfo.aspx"

それでも違いはありません。その後、ある種のセッション ID を持つ Cookie があることに気付きました。そこで、ブラウザにロードしたときに持っていた値を追加しました。

    request.CookieContainer = New CookieContainer()
    request.CookieContainer.Add(New Uri("http://www.nzracing.co.nz"), New Cookie("ASP.NET_SessionId", "1udhwsgqwqzv4innpp4noxao"))

まだ何もないので、プログラムで元のページを取得し、CookieCollection を取得して、CookieCollection 全体をリクエストに渡しました。まだ何もありません。

ここでかなり基本的なことが明らかに欠けていますが、何が問題なのかわかりません。

さらに調べてみると (私は新しいユーザーなので参照できないページ)、URL と json 文字列が間違っていることがわかります。だから私はこれらを

Dim url As String = "http://www.nzracing.co.nz/ServerScript/RaceInfo.aspx"
Dim json As String = "{'method':GetCalendarEvents', 'params':['start':'26-May-2013', 'end':'07-Jul-2013']}"

万歳!返事が来ました。しかし、それは私が最初に言及した元のページの html にすぎません。Fiddler2 で見られる json 応答ではありません。その時はまだ正しくありません。

ヘルプ?予期した json 応答が得られないのはなぜですか?

乾杯

4

2 に答える 2

0

リクエスト メソッドとして POST を使用しています。通常、投稿はサーバー上の何かを変更したいときに使用されます。サーバーから情報を要求するだけの場合は、GET を使用します。

取得している HTTP ステータス コードは何ですか?

于 2013-06-12T10:59:51.833 に答える