如何在C#Discord Bot上使用JSON API
我正在尝试创建一个discord bot,它使用JSON API根据命令上的给定参数查找用户信息 假设我想查找名为mellin111的用户 这方面的api将是。 我也在使用bunny83的SimpleJSON 以下是我的部分代码:如何在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) {
[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获取数据吗?当然可以,毫无疑问,但是将用户代理设置为您的请求有什么错?