본문 바로가기

C#/Network

C# HttpClient RestAPI Get

C# HttpClient RestAPI Get

 

비동기 HttpClient

public static async Task<string> AlarmAsync(string bearer, string id, bool isReturnResponseMessage = false)
{
    //ServicePointManager.ServerCertificateValidationCallback = delegate { return true; }; // 인증
    string result = string.Empty;
 
    try
    {
        var cl = new HttpClient();
        cl.BaseAddress = new Uri(BaseUrl);
 
        cl.Timeout = TimeSpan.FromSeconds(3);
        cl.DefaultRequestHeaders.Add("accept", " application/+json");
        cl.DefaultRequestHeaders.Add("authorization", "Bearer " + bearer);
        HttpResponseMessage response = await cl.GetAsync("devices?ids=");
 
        var jsonString = await response.Content.ReadAsStringAsync();
        if (isReturnResponseMessage)
        {
            return jsonString;
        }
 
        List<AlarmResponse> array = JsonConvert.DeserializeObject<List<AlarmResponse>>(jsonString);
        if (array.Count > 0)
        {
            if (array[0].alarms.Count > 0)
            {
                result = array[0].alarms[0].alarms_type;
            }
        }
    }
    catch (Exception ex)
    {
        Debug.WriteLine(ex.Message);
    }
 
    return result;
}

 

동기 WebRequest

public class CrestAPI
{
    public string Get(string uri)
    {
        string responseFromServer = string.Empty;
        try
        {
            WebRequest request = WebRequest.Create(uri);
            request.Method = "GET";
            request.ContentType = "application/json";
            //request.Headers["user-agent"] = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)";
            using (WebResponse response = request.GetResponse())
            using (Stream dataStream = response.GetResponseStream())
            using (StreamReader reader = new StreamReader(dataStream))
            {
                responseFromServer = reader.ReadToEnd().Replace("access_token=", "");
                Console.WriteLine(responseFromServer);
            }

        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }

        return responseFromServer;
    }
}

'C# > Network' 카테고리의 다른 글

C# Ping 테스트, 해당 IP 장치 이름 가져오기  (0) 2020.08.07
C# 네트워크 상 맥어드레스 가져오기  (0) 2020.08.07
C# http post header body  (0) 2020.08.07
C# HttpClient RestAPI Post  (0) 2020.08.05
C# HttpClient RestAPI Patch  (0) 2020.08.04