C#使用Restful Api : GET
GET方法,沒有傳入參數。僅有URL、timeOut
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| public static void GET(string url, int timeOut) { HttpWebResponse response; try { // 使用 HttpWebRequest.Create 實際上也是呼叫 WebRequest.Create WebRequest request = WebRequest.Create(url); //指定 request 使用的 http verb request.Method = "GET"; request.Timeout = timeOut; //使用 GetResponse 方法將 request 送出,如果不是用 using 包覆,請記得手動 close WebResponse 物件,避免連線持續被佔用而無法送出新的 request response = (HttpWebResponse)request.GetResponse(); } catch (WebException ex) { LogUtil.logger.Error(Convert.ToString(ex)); //網站回應錯誤, _ = (HttpWebResponse)ex.Response; return; } if (response != null) { response.Close(); } return; }
|
GET方法,有傳入參數。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| public static byte[] GET(string url, NameValueCollection values) { HttpWebResponse response; try { var queryString = ToQueryString(values); LogUtil.logger.Debug("queryString:" + queryString); var request = WebRequest.Create(url + queryString); request.Method = "GET"; request.Timeout = timeout_5; response = (HttpWebResponse)request.GetResponse(); } catch (WebException ex) { LogUtil.logger.Error(Convert.ToString(ex)); //網站回應錯誤, _ = (HttpWebResponse)ex.Response; return null; } if (response != null) { if (response.StatusCode == HttpStatusCode.OK) { using (var responseStream = response.GetResponseStream()) using (var stream = new MemoryStream()) { responseStream.CopyTo(stream); return stream.ToArray(); } } response.Close(); } return null; }
private static string ToQueryString(NameValueCollection col) { return string.Join("&", col.AllKeys.Select(key => string.Format("{0}={1}", HttpUtility.UrlEncode(key), HttpUtility.UrlEncode(col[key])))); }
|