public T GET <T>(Uri url, WebHeaderCollection exHeaders = null) { using (var con = new OpenSSL.wapper.SslConnection()) { con.connect(url); con.write("GET {0} HTTP/1.1\r\n", url.PathAndQuery); con.write("Accept: application/vnd.github.v3+json\r\n"); con.write("User-Agent: {0}\r\n", user_agent); con.write("Authorization: token {0}\r\n", access_token); con.write("Host: {0}\r\n", url.Host); con.write("\r\n"); var c = con.getStatusCode(false); var col = con.getHeaders(); string j = null; if (col.IsTransferEncodingChunked) { j = con.getChuckedString(); } else { j = con.getString(col.content_Length); } if (c != HttpStatusCode.OK) { throw new APIErrorExcption(c, JsonConvert.DeserializeObject <Result>(j)); } return(JsonConvert.DeserializeObject <T>(j)); } }
public void Delete(string owner, string repo) { var url = new Uri(string.Format("https://api.github.com/repos/{0}/{1}", owner, repo)); var con = new OpenSSL.wapper.SslConnection(); con.connect(url); con.write("DELETE {0} HTTP/1.1\r\n", url.PathAndQuery); con.write("Accept: application/vnd.github.v3+json\r\n"); con.write("User-Agent: {0}\r\n", user_agent); con.write("Authorization: token {0}\r\n", access_token); con.write("Host: {0}\r\n", url.Host); con.write("\r\n"); var c = con.getStatusCode(false); var col = con.getHeaders(); string j = null; if (col.IsTransferEncodingChunked) { j = con.getChuckedString(); } else { j = con.getString(col.content_Length); } if (c != HttpStatusCode.NoContent) { throw new APIErrorExcption(c, JsonConvert.DeserializeObject <Result>(j)); } }
public Repo Edit(string user, string repo) { var jobj = new JObject(new JProperty("name", new JValue(repo)), new JProperty("description", new JValue("this is test description")) ); var url = new Uri(string.Format("https://api.github.com/repos/{0}/{1}", user, repo)); var con = new OpenSSL.wapper.SslConnection(); con.connect(url); con.write("PATCH {0} HTTP/1.1\r\n", url.PathAndQuery); con.write("Accept: application/vnd.github.v3+json\r\n"); con.write("User-Agent: {0}\r\n", user_agent); con.write("Authorization: token {0}\r\n", access_token); con.write("Content-Type: application/json\r\n"); con.write("Content-Length: {0}\r\n", jobj.ToString().Length); con.write("Host: {0}\r\n", url.Host); con.write("\r\n"); con.write(jobj.ToString()); var c = con.getStatusCode(false); var col = con.getHeaders(); string j = null; if (col.IsTransferEncodingChunked) { j = con.getChuckedString(); } else { j = con.getString(col.content_Length); } if (c != HttpStatusCode.OK) { throw new APIErrorExcption(c, JsonConvert.DeserializeObject <Result>(j)); } return(JsonConvert.DeserializeObject <Repo>(j)); }