밑에 소스는 Google Oauth 2.0 인증과 관련해서 RefeshToken 값을 이용해 AccessToken 값을 구하는 구글 API입니다.
"####################################" 이 들어간 문자는 중요한 값이라 일부러 숨겼습니다.
"대충 이런식으로 쓴다" 정도로 봐주시면 감사하겠습니다.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.IO;
namespace Http_Test { class Program { static void Main(string[] args) { // 요청을 보내는 URI string strUri = "https://accounts.google.com/o/oauth2/token";
// POST, GET 보낼 데이터 입력 StringBuilder dataParams = new StringBuilder(); dataParams.Append("client_id=#############################################"); dataParams.Append("&client_secret=####################################"); dataParams.Append("&refresh_token=####################################"); dataParams.Append("&grant_type=refresh_token");
// 요청 String -> 요청 Byte 변환 byte[] byteDataParams = UTF8Encoding.UTF8.GetBytes(dataParams.ToString());
///////////////////////////////////////////////////////////////////////////////////// /* POST */ // HttpWebRequest 객체 생성, 설정 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strUri); request.Method = "POST"; // 기본값 "GET" request.ContentType = "application/x-www-form-urlencoded"; request.ContentLength = byteDataParams.Length;
/* GET */ // GET 방식은 Uri 뒤에 보낼 데이터를 입력하시면 됩니다. /* HttpWebRequest request = (HttpWebRequest)WebRequest.Create(strUri + "?" + dataParams); request.Method = "GET"; */ //////////////////////////////////////////////////////////////////////////////////////
// 요청 Byte -> 요청 Stream 변환 Stream stDataParams = request.GetRequestStream(); stDataParams.Write(byteDataParams, 0, byteDataParams.Length); stDataParams.Close();
// 요청, 응답 받기 HttpWebResponse response = (HttpWebResponse)request.GetResponse();
// 응답 Stream 읽기 Stream stReadData = response.GetResponseStream(); StreamReader srReadData = new StreamReader(stReadData, Encoding.Default);
// 응답 Stream -> 응답 String 변환 string strResult = srReadData.ReadToEnd();
Console.WriteLine(strResult); Console.ReadLine(); } } } |
ex) web service 호출[json] -> DataSet / DataTable 생성
using System;
using System.Data;
using System.Net;
using System.IO;
using System.Text;
using System.Net.Json;
using System.Reflection;
using System.Collections.Generic;
using Newtonsoft.Json;
public DataSet SetDanwon(string Category)
{
DataSet ds = new DataSet();
string url = string.Format("http://ccapi.hbedu.co.kr/ccqb/category?site=drmath&subject=mth&emh=&services=&chapters={0}&ut=키값", Category);
//string savepath = @"D:\webhost\Drmath\log\" + DateTime.Now.ToShortDateString() + "SetDanwon.txt";
//System.IO.File.AppendAllText(savepath, url + "\r\n", Encoding.UTF8);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
Stream st = request.GetRequestStream();
st.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream, Encoding.UTF8);
string DanwonList = reader.ReadToEnd();
stream.Close();
response.Close();
reader.Close();
JsonTextParser parser = new JsonTextParser();
JsonObject obj = parser.Parse(DanwonList);
JsonObjectCollection col = (JsonObjectCollection)obj;
JsonArrayCollection d = (JsonArrayCollection)col["d"];
JsonNumericValue r = (JsonNumericValue)col["r"];
JsonStringValue m = (JsonStringValue)col["m"];
JsonNumericValue c = (JsonNumericValue)col["c"];
JsonObject Result = parser.Parse("{" + d.ToString() + "}");
ds = JsonConvert.DeserializeObject(Result.ToString());
return ds;
}
'SW > C#' 카테고리의 다른 글
[C#] DataTable에서 유용하게 사용 되는 것들 (0) | 2019.12.16 |
---|---|
[C#] Dataset 을 엑셀파일로 다운로드 (0) | 2019.09.19 |
[C#] 객체 리스트를 데이터 테이블로 변환하기 (0) | 2019.09.19 |