HttpWebRequest request =
(HttpWebRequest)HttpWebRequest.Create("http://YOUR_URL/");
HttpWebResponse response =
(HttpWebResponse)request.GetResponse();
Stream stream =
response.GetResponseStream();
StreamReader sr =
new StreamReader(stream);
string result = sr.ReadToEnd();
但如果我們因為參數或網址錯誤,導致網站回應錯誤,就會取得如 400 Bad Request、404 Not Found...等等的這種http status,在瀏覽器上就會看到像這樣的畫面:
這種情況下,會在執行HttpWebRequest.GetResponse()的時候,引發WebException,原本以為就此拿不到WebResponse物件,也就不能取得網站的回應內容(Content);後來發現被藏在WebException.Response裡,這下Status Code、網站回應內容就都到手啦:
HttpWebRequest request =
(HttpWebRequest)HttpWebRequest.Create("http://YOUR_URL/");
HttpWebResponse response = null;
try
{
//執行Request
//若網站回應錯誤,就會在此引發WebException
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException e)
{
//網站回應錯誤,
response = (HttpWebResponse)e.Response;
}
if (response != null)
{
Stream stream = response.GetResponseStream();
StreamReader sr = new StreamReader(stream);
string result = sr.ReadToEnd();
switch (response.StatusCode)
{
case HttpStatusCode.OK:
//200:正常
//(略)
break;
case HttpStatusCode.BadRequest:
//400:錯誤
//(略)
break;
default:
//其他狀態
//(略)
break;
}
response.Close();
}
在使用Plurk API的時候,是透過http的狀態去判斷呼叫成功與否,200 OK代表正確,400 Bad Request就表示有錯,兩者都會用JSON字串回傳相關資訊,我們如法泡製,就可以開始用API進行開發工作了:
MSDN Reference:
其他參考資料:




您說 : 這種情況下,會在執行HttpWebResponse.GetResponse()的時候...
回覆刪除應該是HttpWebRequest.GetResponse()
的確誤植了,感謝指正。
刪除