Остальные 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 должно помочь в этом.

Другие вопросы по тегам