自家服務器接收并處理錯誤報告 -> 反饋用戶(解決掉BUG就行,不要太聲揚)"/>

国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - HttpWebRequest和HttpWebResponse用法小結

HttpWebRequest和HttpWebResponse用法小結

2019-09-19 12:15asp.net教程網 ASP.NET教程

在每個系統出寫入報告錯誤代碼(找個合理的理由,比如系統免費升級) -> 自家服務器接收并處理錯誤報告 -> 反饋用戶(解決掉BUG就行,不要太聲揚)

最近公司拓展市場異常迅猛,數周之類開出去幾十套系統,雖然系統名字不一樣,但各個內容相似。由于時間緊迫,很多開出去的系統 
出現各種神奇的錯誤,當初雖然有記錄錯誤日志,然而很多客戶使用的是自己的服務器和數據庫,出了問題我們并不能立即掌握信息, 
因此決定做一個捕獲所有系統的異常并保存到自家數據庫中。 
實現思路 
在每個系統出寫入報告錯誤代碼(找個合理的理由,比如系統免費升級) -> 自家服務器接收并處理錯誤報告 -> 反饋用戶(解決掉BUG就行,不要太聲揚) 
基礎回顧 
---參考msdn 
1.HttpWebRequest類:提供WebRequest類的Http特定的實現。 
HttpWebRequest 類對 WebRequest 中定義的屬性和方法提供支持,也對使用戶能夠直接與使用 HTTP 的服務器交互的附加屬性和方法提供支持。 
不要使用構造函數創建HttpWebRequest實例,請使用System.Net.WebRequest.Create(URI uriString)來創建實例,如果URI是Http://或Https://, 
返回的是HttpWebRequest對象。(建立請求特定URI的對象) 
當向資源發送數據時,GetRequestStream方法返回用于發送數據的Stream對象。(獲取請求數據的流對象) 
GetResponse方法向RequestUri屬性指定的資源發出同步請求并返回包含該響應的HttpWebResponse。(獲取來自internet的響應) 
實例講解 
1.遠程請求并返回響應 

復制代碼代碼如下:


/// <summary> 
/// 報告系統錯誤 
/// </summary> 
/// <param name="ex"></param> 
/// <returns></returns> 
public static string Sys_ReportError(Exception ex) 

try 

//要提交表單的URI字符串 
string uriString = "http://localhost/Sys_ReportError.aspx"; 
HttpContext context = HttpContext.Current; 
if (context == null) return string.Empty; 
string targetSite = ex.TargetSite.ToString(); 
string stackTrace = ex.StackTrace; 
string friendlyMsg = ex.Message; 
string errorPage = context == null || context.Request == null ? "" : context.Request.Url.ToString(); 
string projectName = Config.Sys_Title(); 
//要提交的字符串數據 
string postString = "targetSite=" + HttpUtility.UrlEncode(targetSite); 
postString += "&stackTrace=" + HttpUtility.UrlEncode(stackTrace); 
postString += "&friendlyMsg=" + HttpUtility.UrlEncode(friendlyMsg); 
postString += "&errorPage=" + HttpUtility.UrlEncode(errorPage); 
postString += "&projectName=" + HttpUtility.UrlEncode(projectName); 
postString += "&key=" + ""; 
HttpWebRequest webRequest = null; 
StreamWriter requestWriter = null; 
string responseData = ""; 
webRequest = System.Net.WebRequest.Create(uriString) as HttpWebRequest; 
webRequest.Method = "POST"; 
webRequest.ServicePoint.Expect100Continue = false; 
webRequest.Timeout = 1000 * 60; 
webRequest.ContentType = "application/x-www-form-urlencoded"; 
//POST the data. 
requestWriter = new StreamWriter(webRequest.GetRequestStream()); 
try 

requestWriter.Write(postString); 

catch (Exception ex2) 

return "連接錯誤"; 

finally 

requestWriter.Close(); 
requestWriter = null; 

responseData = WebResponseGet(webRequest); 
webRequest = null; 
return responseData; 

catch 

return "未知錯誤"; 

 

復制代碼代碼如下:


/// <summary> 
/// Process the web response. 
/// </summary> 
/// <param name="webRequest">The request object.</param> 
/// <returns>The response data.</returns> 
public static string WebResponseGet(HttpWebRequest webRequest) 

StreamReader responseReader = null; 
string responseData = ""; 
try 

responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream()); 
responseData = responseReader.ReadToEnd(); 

catch 

return "連接錯誤"; 

finally 

webRequest.GetResponse().GetResponseStream().Close(); 
responseReader.Close(); 
responseReader = null; 

return responseData; 


2.遠程服務器讀取流 

復制代碼代碼如下:


_context = HttpContext.Current; 
Stream stream = _context.Request.InputStream; //獲取當前傳入Http輸入流 
long length = stream.Length; 
byte[] data = _context.Request.BinaryRead((int)length);//對當前輸入流進行指定字節數的二進制讀取 
string strContent = Encoding.UTF8.GetString(data);//解碼為UTF8編碼形式的字符串 


代碼講解到此結束,一些相關補充: 
1.HttpWebRequest對象有一些相關設置屬性,如Method(發送方式),TimeOut(請求超時時間),ContentType(Http標頭的值)等等。 
2.若遠程接收頁面出錯,該如何調試,很簡單,只需寫入下面的代碼: 

復制代碼代碼如下:


HttpWebResponse res = null; 
WebResponse response = null; 
try 

WebResponse response = webRequest.GetResponse(); 

catch (WebException ex1) 

res = (HttpWebResponse)ex1.Response; 

finally 

StreamReader sr = new StreamReader(res.GetResponseStream(), Encoding.UTF8); 
string strhtml = sr.ReadToEnd(); 
HttpContext.Current.Response.Write(strhtml); 


當獲取服務器響應出錯時,捕捉錯誤,最終打印出錯誤即可。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 一区二区三区欧美 | 国产免费网址 | 久久99蜜桃综合影院免费观看 | 91久久精品一区二区二区 | 成人性大片免费观看网站 | 狠狠操夜夜爱 | 成人伊人网 | 欧美成人精品激情在线观看 | 一区二区三区在线免费视频 | 自拍偷拍亚洲一区 | 国产精品一码二码三码在线 | 日韩免费一区 | 精品久久久久久久久久久久 | 久久九九国产精品 | 亚洲国内精品 | 综合久 | 日韩一区精品 | 性色av一区二区三区红粉影视 | 精产国产伦理一二三区 | 久久久精品日本 | 久久久久久久久久久动漫 | 日日天天| 免费毛片网站 | 久久精品亚洲一区二区 | 国产中文字幕亚洲 | 日韩欧美一区二区精品 | 欧美日韩精品一区二区三区 | 日韩中文字幕在线播放 | 中文字幕乱码亚洲精品一区 | 亚洲第一福利视频 | 日韩欧美一区二区三区 | 黄色一级毛片在线观看 | 国产成人在线视频 | 国产视频一区二 | 免费簧片 | 久草美女 | www.久久.com | 91精品国产一区二区三区 | 精品96久久久久久中文字幕无 | 色av中文字幕 | 久久久久无码国产精品一区 |