如何使用Firebase AccessToken将.Net WebClient用于UploadString

时间:2016-11-03 04:15:28

标签: c# json rest firebase

在Windows服务应用程序中使用C#,。Net 4.5,希望上传和查询数据库的REST格式的JSON对象。

我试图找出连接到Firebase以使用WebClient.UploadString()所需的URI的正确语法,我在上传到GAS数据库之前已经成功使用了以下代码。但我们现在正在迁移到Firebase。我设法使用OAuth2 API动态获取访问令牌,并且我可能需要将其包含在我在方法调用中使用的URI中。有没有人有一个小的剪辑(S)代码与文字字符串,以便我可以看到正确的语法?我怀疑Headers可能需要不同的值吗?

WebClient webClnt = new WebClient();
webClnt.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
string result = 
   webClnt
      .UploadString(
          new Uri("https://myfirebaseDB123.firebaseio.com/????"),
          JSONObjectStr);

欢呼声,

安迪

1 个答案:

答案 0 :(得分:1)

感谢Google支持指出允许C#与Firebase交互成功的语法略有不同:

var connectionString = FirebaseServerURL + ".json?access_token=" + accessToken;
var webClnt = new WebClient();
result = webClnt.UploadString(connectionString, "PATCH", data); 

因此,在您的URI和您的业务中使用“access_token =”而不是“auth =”。无需在webClnt中设置其他“网页标题”。

注意当使用“Auth”时,返回了http 400(错误请求)而不是401(未授权)。如果没有尝试进行身份验证,则返回401。