从stats.nba.com读取JSON数据

时间:2018-11-03 07:20:59

标签: c# json

我正在尝试从stats.nba.com获取数据 我目前需要的JSON是网址https://stats.nba.com/stats/teamyearbyyearstats?TeamID=1610612746&LeagueID=00&PerMode=Totals&SeasonType=Regular%20Season

,并且我试图在c#控制台应用程序中获取它。 这是我的代码:

        try
        {
            using (var webClient = new System.Net.WebClient())
            {
                var json = webClient.DownloadString("https://stats.nba.com/stats/teamyearbyyearstats?TeamID=1610612746&LeagueID=00&PerMode=Totals&SeasonType=Regular%20Season");
                Console.WriteLine(json);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }

这样,它会导致连接超时错误,并且无法从传输连接中读取数据。 所以我搜索了它,找到了一个解决方案

ServicePointManager.Expect100Continue = false;

我把它放在using语句之前,它仍然不起作用。 抱歉,我是这个在线事物的新手,很抱歉,如果这是一个菜鸟错误。 谢谢

2 个答案:

答案 0 :(得分:1)

下面的代码对我有用。

string responsetext;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://stats.nba.com/stats/teamyearbyyearstats?TeamID=1610612746&LeagueID=00&PerMode=Totals&SeasonType=Regular%20Season");
request.Accept = "application/json";
request.Method = "GET";
request.Headers.Add("Accept-Encoding", ": gzip, deflate, br");
var response = request.GetResponse() as HttpWebResponse;
using (var responsechar = new StreamReader(response.GetResponseStream()))
{
    responsetext = responsechar.ReadToEnd();
}

response.Close();

如果下面的行不存在,给出的URL不响应。

request.Headers.Add("Accept-Encoding", ": gzip, deflate, br");

答案 1 :(得分:0)

@Ajay指出,您需要在请求中添加标头:

   try{
    firebase.auth().createUserWithEmailAndPassword(email,password)
      .then(() => this.props.navigation.navigate('home'))
      .catch(error => {   
        alert(error.message);
     })
   }catch(err){
      alert(err);
   }