Остальные API не дает желаемых результатов
Я не получаю результаты, указанные в документации. Я вхожу в Бадди; созданное приложение; скопируйте этот URL и присвойте ему строку URL; когда я запускаю программу, я не получаю ожидаемых результатов (status + Accesstoken), как сказано в документации. Может кто-нибудь, пожалуйста, скажите мне, если я что-то упустил, как новичок в http звонки. Он работает на http запрашивающей стороне, но не на дополнении Плаката Firefox!
Документация http://dev.buddyplatform.com/Home/Docs/Getting%20Started%20-%20REST/HTTP?
Код
строковые параметры = "{appid:'xxxxxx', appkey: 'xxxxxxx', платформа: 'REST Client'}";
private async void SimpleRequest()
{
HttpWebRequest request = null;
HttpWebResponse response = null;
try
{
request = (HttpWebRequest)WebRequest.Create(url);
request.Accept = "application/json";
request.ContentType = "application/json";
request.Method = "POST";
StreamWriter sw = new StreamWriter(await request.GetRequestStreamAsync());
sw.WriteLine(parameters);
sw.Close();
response = (HttpWebResponse) await request.GetResponseAsync();
}
catch (Exception)
{ }
}
2 ответа
Используя надстройку HTTP requester в Firefox, я успешно получил токен доступа, чтобы их API работал.
В C# они предоставляют строку кода для отправки вашего appid и appkey, это может быть проблемой:
Buddy.Init("yourAppId", "yourAppKey");
Я думаю, вы должны использовать их.NET SDK!
Конечно, вы можете использовать REST API из raw REST, как вы делаете, хотя.NET SDK будет обрабатывать некоторые более сложные детали изменения корня сервиса. Я запустил ваш код, используя свои собственные учетные данные Buddy, и смог вернуть JSON, содержащий токен доступа. Возможно, вам понадобится прочитать поток ответов обратно как JSON, чтобы получить токен доступа. Я использовал следующий код для вывода JSON на консоль:
request = (HttpWebRequest)WebRequest.Create(url);
request.Accept = "application/json";
request.ContentType = "application/json";
request.Method = "POST";
StreamWriter sw = new StreamWriter(await request.GetRequestStreamAsync());
sw.WriteLine(parameters);
sw.Close();
response = (HttpWebResponse)await request.GetResponseAsync();
Console.WriteLine(await new StreamReader(response.GetResponseStream()).ReadToEndAsync());
Используя Newtonsoft.Json, я могу разобрать свой accessToken следующим образом:
Uri url = new Uri("https://api.buddyplatform.com/devices");
request = (HttpWebRequest)WebRequest.Create(url);
request.Accept = "application/json";
request.ContentType = "application/json";
request.Method = "POST";
StreamWriter sw = new StreamWriter(await request.GetRequestStreamAsync());
sw.WriteLine(parameters);
sw.Close();
response = (HttpWebResponse)await request.GetResponseAsync();
var parsed = JsonConvert.DeserializeObject<IDictionary<string,object>>( (await new StreamReader(response.GetResponseStream()).ReadToEndAsync()));
var accessToken = (parsed["result"] as JObject).GetValue("accessToken").ToString();
Console.WriteLine(accessToken);
3.0 SDK делает все это за вас, предоставляя остальную часть службы с помощью тонкой оболочки REST, руководство по миграции для 3.0 SDK должно помочь в этом.