我正在尝试制作从网络(http://scriptopia.co.uk/Post.php?id=8)复制的基本c#代码,以使自己熟悉Firebase。通过将时间数据发送到数据库(第8秒除外),该代码似乎可以正常工作。有人可以告诉我为什么这种奇怪的行为吗?
while (true)
{
DateTime date = DateTime.Now;
string hour = date.ToString("HH");
string minutes = date.ToString("mm");
string seconds = date.ToString("ss");
string jsondata = "{'Time':{'Hour': " + hour + ",'Minute': " + minutes + ", 'Second': " + seconds + ", }}";
JObject data = JObject.Parse(jsondata);
string json = JsonConvert.SerializeObject(data);
var request = System.Net.WebRequest.CreateHttp("https://******.firebaseio.com/.json?auth=***db**secret***");
request.Method = "PATCH";
request.ContentType = "json";
var buffer = Encoding.UTF8.GetBytes(json);
request.ContentLength = buffer.Length;
request.GetRequestStream().Write(buffer, 0, buffer.Length);
var response = request.GetResponse();
json = (new System.IO.StreamReader(response.GetResponseStream())).ReadToEnd();
}
我希望能够连续接收时间数据而不会出现任何错误,但是在这种情况下,代码每分钟崩溃8秒。我尝试在在线编译器中运行它,并观察到相同的结果。
答案 0 :(得分:2)
当您获得秒数时,请仅用“ s”对其进行格式化,以使其不使用前导零:string seconds = date.ToString("s");
,并对小时和分钟进行相同操作。
答案 1 :(得分:-2)
如果json值像这样=>
UIDefaults.getUI() failed: no ComponentUI class for: javax.swing.JRootPane[,0,0,0x0,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=1,maximumSize=,minimumSize=,preferredSize=]
这意味着“数据”的类型为字符串。
将其更改为
{
"Data" : "Value"
}
那么它将是int值。