??? 最近遇到一個(gè)問題請(qǐng)教下,在一個(gè)時(shí)間控件中寫了一個(gè)HttpWebRequest以post的形式發(fā)送,設(shè)置了發(fā)送超時(shí)5秒,但當(dāng)我網(wǎng)絡(luò)不好斷了一段時(shí)間網(wǎng)絡(luò),然后再連接上后,就不可以繼續(xù)發(fā)送請(qǐng)求了,不知道有沒有什么可以修復(fù)的方法和屬性,下面是我的代碼段
strParams = HttpUtility.UrlPathEncode(strParams); ?????
??????????????? byte[] byteRequest = Encoding.Default.GetBytes(strParams);//編碼????
??????????????? HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(new Uri(consumer.ConsumerAddress.ToString().Trim()));?
??????????????? httpWebRequest.Credentials = CredentialCache.DefaultCredentials; ??????????????? httpWebRequest.ContentType = "application/x-www-form-urlencoded";//這一個(gè)參數(shù)似乎是必需的。
??????????????? httpWebRequest.Method = "POST";//這個(gè)是請(qǐng)求方法,必須是POST,這個(gè)可以通過分析實(shí)際登錄的情況得到采用的方法 ?????
???? ?????????? httpWebRequest.Timeout = consumer.ConsumerTimeOut; ??????????????? httpWebRequest.ContentLength = byteRequest.Length;//POST數(shù)據(jù)的長(zhǎng)度,這個(gè)參數(shù)是必需的。 ?????????????
???????????? ?? httpWebRequest.ProtocolVersion = HttpVersion.Version10; ??????????????? httpWebRequest.KeepAlive = false; ??????????????? //下面是發(fā)送數(shù)據(jù)到服務(wù)器???????????
??????????????? Stream stream = httpWebRequest.GetRequestStream();?????????????
??????????????? stream.Write(byteRequest, 0, byteRequest.Length); ??????????????? stream.Close(); ???????????????
?????????????? ?HttpWebResponse webResponse = (HttpWebResponse)httpWebRequest.GetResponse();//取服務(wù)器的響應(yīng) ???????????
?????????? ???? StreamReader streamReader = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8);
在最后一句會(huì)有異常
HttpWebRequest發(fā)送數(shù)據(jù)超時(shí)后修復(fù)處理
呼啦一陣風(fēng)
2018-12-07 06:37:46