从http posrequest获得好的按摩

时间:2017-12-12 06:25:39

标签: c#

{
  "token_type": "bearer",
  "access_token": "ew0KICAiYWxnIjogIkhTMjU2IiwNCiAgInR5cCI6ICJKV1QiDQp9.ew0KICAidG9rZW5EYXRhIjogInpjeXNxSWcvbnBJTjBZWG5BSlpLa0JJQTRERnVMK2JCcTFrT0VhbWxCbXRieHJITFdhbVZBVnluSzl2U0dQRVpZdW1TZ1dQRERwemU3UEphSWhPTjJIeGgvWURHL09qalFyQXZFSHlRRkRucUFUM05NK3ZhY2RKMnBaTlFrYVpHNEU4MjhkVFZpMnduTml2N1g3OHR4VmkxcS84bnBmN25NcWc1UkZlZ1VockhPUUU1WXJuMlVsRmJTV200dDNsTHoyWTJpa2ZMOURJOTVBTHIvV25rdjdhWkljNlJ1Rld5OThid05ZOHpCMXc9IiwNCiAgImNsaWVudElEIjogImNhNjQ3ZDc3OTZjNTQ4MjA5Y2RkYTllZDAwNGMzOGFhNTI0ODE3MTcwODAyODAwNDYyOCIsDQogICJyZXBseVVybCI6ICJodHRwOi8vbG9jYWxob3N0IiwNCiAgIm5iZiI6IDE1MTMwNTkxMTcsDQogICJleHAiOiAxNTEzMDYwOTE3LA0KICAiaWF0IjogMTUxMzA1OTExNw0KfQ.ixRDlLYfrJ-OQs6LzkLhf07skR9z1i-3w1u7rtRppgE",
  "expires_in": 1800.0,
  "refresh_token": "zcysqIg/npIN0YXnAJZKkBIA4DFuL+bBq1kOEamlBmtbxrHLWamVAVynK9vSGPEZgS5OAD7gpY2OoBSeaHH48aQ/ER3WZOnOijWQrxEFNKU="
}

这就是我对json的反应。我想从this.so显示acces_token我想要代码行。 这是我试图获得这个json的代码。

public async Task NewMethodAsync()
{
    try
    {
        HttpClient objClient = new HttpClient();

        Uri requestUri = new Uri("https://approvalbotbeta.azurewebsites.net/api/token");
        Dictionary<string, string> pairs = new Dictionary<string, string>();
        var client_ID = "ca647d7796c548209cdda9ed004c38aa5248171708028004628";
        var client_secret = "QXBwcm92YWxCb3RfVE9H7auiwc6RhE6ldS6WGsqWh2NhNjQ3ZDc3OTZjNTQ4MjA5Y2RkYTllZDAwNGMzOGFhNTI0ODE3MTcwODAyODAwNDYyOA==";
        pairs.Add("grant_type", "client_credentials");
        pairs.Add("reply_url", "http://localhost");
        FormUrlEncodedContent httpContent = new FormUrlEncodedContent(pairs);
        var encordedString = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(client_ID + ":" + client_secret));
        // httpContent.Headers.Add("Authorization", "Basic " + encordedString);
        //httpContent.Headers.Add("Authorization", "Basic " + encordedString);
        // httpContent.Headers.Add["Authorization"] = "Basic" + encordedString;

        objClient.DefaultRequestHeaders.Add("Authorization", "Basic " + encordedString);

        HttpResponseMessage respon = await objClient.PostAsync("https://approvalbotbeta.azurewebsites.net/api/token", httpContent);
        if (respon.IsSuccessStatusCode)
        {
            Console.WriteLine(respon.Content.ReadAsStringAsync().Result);

        }
    }
    catch (Exception ex)
    {

        Console.WriteLine(ex.Message);
    }
}

2 个答案:

答案 0 :(得分:0)

您需要安装Newtonsoft.Json库并使用以下代码:

dynamic json = JsonConvert.DeserializeObject(result);
string token = json.refresh_token;

答案 1 :(得分:0)

只需创建响应类

public class Response
{
    public string token_type { get; set; }
    public string access_token { get; set; }
    public double expires_in { get; set; }
    public string refresh_token { get; set; }
}

然后使用Newstonsoft Json - https://www.nuget.org/packages/newtonsoft.json/

    var response = JsonConvert.DeserializeObject<Response>(result);
    Console.WriteLine(response.access_token);