Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#Discord Bot上使用JSON API_C#_Discord.net - Fatal编程技术网

如何在C#Discord Bot上使用JSON API

如何在C#Discord Bot上使用JSON API,c#,discord.net,C#,Discord.net,我正在尝试创建一个discord bot,它使用JSON API根据命令上的给定参数查找用户信息 假设我想查找名为mellin111的用户 这方面的api将是。 我也在使用bunny83的SimpleJSON 以下是我的部分代码: [Command("search", RunMode = RunMode.Async)] public async Task Search([Remainder] string echo) {

我正在尝试创建一个discord bot,它使用JSON API根据命令上的给定参数查找用户信息

假设我想查找名为mellin111的用户

这方面的api将是。 我也在使用bunny83的SimpleJSON

以下是我的部分代码:

[Command("search", RunMode = RunMode.Async)]

        public async Task Search([Remainder] string echo)
        {
            string url = @"https://www.habbo.com/api/public/users?name=" + echo;
            // GET request
            WebClient ipcon = new WebClient();
            string response = ipcon.DownloadString(url);
            // Parse json
            dynamic json = JSON.Parse(response);

            var eb = new EmbedBuilder();
            eb
            .WithTitle("Search Result")
            .AddField("**Habbo IGN: **", "" + json["name"], false)
            .AddField("**Motto: **", "" + json["motto"], false)
            .AddField("**Member since: **", "" + json["memberSince"], false)
            .WithFooter("made with The API seems to restrict requests from specific clients.
If you set a normalish user agent, it seems to work just fine.

An example straight from the WebClient Class' documentation:

var url = "https://www.habbo.com/api/public/users?name=mellin111";
var ipcon = new WebClient();
ipcon.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
var response = ipcon.DownloadString(url);
var json = JSON.Parse(response);
var yup_this_works = (DateTime)json["memberSince"];
//works assuming the "SimpleJSON" class is used like this, I havent personally used it
[命令(“搜索”,RunMode=RunMode.Async)]
公共异步任务搜索([余数]字符串回显)
{
字符串url=@“https://www.habbo.com/api/public/users?name=“+回声;
//获取请求
WebClient ipcon=新的WebClient();
字符串响应=ipcon.DownloadString(url);
//解析json
动态json=json.Parse(响应);
var eb=新的EmbeddeBuilder();
电子束
.WithTitle(“搜索结果”)
.AddField(“**Habbo-IGN:*”,“+json[“name”],false)
.AddField(“**座右铭:*”,“+json[“座右铭”],false)
.AddField(“**成员自:**”,“+json[”成员自“],false)

.WithFooter(“使用制作的API似乎限制了来自特定客户端的请求。
如果您设置了一个普通的用户代理,它似乎工作得很好

直接来自WebClient类“”的示例:


您需要缩小您寻求帮助的范围。它不返回响应是非常模糊的。您是指希望从
DownloadString
返回的变量响应吗?
Json.Parse
是否未返回响应?命令本身是否已成功调用,但未返回rResponse?@Anu6is我已经改进了,除了这段代码,还有其他方法可以从api获取数据吗?当然可以,毫无疑问,但是将用户代理设置为您的请求有什么错?