使用C#进行JSON-RPC HTTP调用

时间:2014-03-13 22:29:31

标签: c# .net json-rpc

我想知道如何使用C#进行以下HTTP调用。

http://user:pass@localhost:8080/jsonrpc?request={"jsonrpc":"2.0","method":"VideoLibrary.Scan"}

当我将此网址直接粘贴到我的浏览器中(并替换用户凭据和服务器位置)时,它会按预期工作(我的XBMC视频库已更新)。它特别涉及此页面上的HTTP方法:

http://wiki.xbmc.org/index.php?title=HOW-TO:Remotely_update_library

我想知道如何使用C#通过HTTP进行同样成功的调用。

2 个答案:

答案 0 :(得分:3)

使用此:

using (var webClient = new WebClient())
{
    var response = webClient.UploadString("http://user:pass@localhost:8080/jsonrpc", "POST", json);
}

答案 1 :(得分:1)

@Ganesh

我一直收到HTTP 401 Unauthorized消息,直到我添加了对网络凭据的引用(使用http://username:password@server:port只是对我不起作用)

using (var webClient = new WebClient())
{
  // Required to prevent HTTP 401: Unauthorized messages
  webClient.Credentials = new NetworkCredential(username, password);
  // API Doc: http://kodi.wiki/view/JSON-RPC_API/v6
  var json = "{\"jsonrpc\":\"2.0\",\"method\":\"GUI.ShowNotification\",\"params\":{\"title\":\"This is the title of the message\",\"message\":\"This is the body of the message\"},\"id\":1}";
  response = webClient.UploadString($"http://{server}:{port}/jsonrpc", "POST", json);
}