FireBase在第一轮循环后抛出WebException 400

问题描述:

正如试图在实时数据库中添加大约9400个项目并且因此循环遍历我的JArray中的500个项目一样,每个调用之间的延迟时间为90秒。虽然它第一次完全正常工作,但它总是在第二轮抛出Error-Code 400。如果有人知道如何解决,请帮助!FireBase在第一轮循环后抛出WebException 400

我的请求代码:

  var baseAddress = "my database base url"; 
      var http = (HttpWebRequest)WebRequest.Create(new Uri(baseAddress)); 
      http.Accept = "application/json"; 
      http.ContentType = "application/json"; 
      http.Method = "PATCH"; 

      string parsedContent = JsonConvert.SerializeObject(Skins); 
      using (StreamWriter streamWriter = new StreamWriter(http.GetRequestStream())) 
      { 
       streamWriter.Write(parsedContent); 
       streamWriter.Flush(); 
       streamWriter.Close(); 
      } 
      WebResponse httpsresponse = http.GetResponse(); 

      Stream stream = httpsresponse.GetResponseStream(); 
      StreamReader sr = new StreamReader(stream); 
      string response = sr.ReadToEnd(); 
      //MessageBox.Show(response); 

我的循环:

  foreach (JToken Skin in body) 
      { 
       if (i == 500) 
       { 
        new Thread(delegate() 
        { 
         DODB(Skins); 
        }).Start(); 
        Thread.Sleep(90000); 
        i = 0; 
        Skins = new JObject(); 
       } 
       else 
       { 
        Skins.Add(Skin); 
        i++; 
       } 
      } 

解决方案:该错误是JSON里面,我发现在文档,有些字符不能在一个关键允许的条目-名称!