首页 > Windows开发 > 详细

C# 发送HttpWebRequest和HttpWebResponse流读取方式及异常信息获取

时间:2019-03-15 17:12:30      阅读:292      评论:0      收藏:0      [点我收藏+]

try
{
Uri uri = new Uri(url);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "post";
request.Headers.Add("Authorization", "APPCODE " + appcode);
request.Credentials = CredentialCache.DefaultCredentials;
request.Referer = url;
request.ContentType = "application/json; charset=UTF-8";
request.KeepAlive = false;
request.ProtocolVersion = HttpVersion.Version11;
request.MaximumAutomaticRedirections = 4;
request.MaximumResponseHeadersLength = 4;
ServicePointManager.DefaultConnectionLimit = 100;
ServicePointManager.CheckCertificateRevocationList = true;
byte[] byteRequest = Encoding.UTF8.GetBytes(data);
Stream rs = request.GetRequestStream();
rs.Write(byteRequest, 0, byteRequest.Length);
rs.Close();

HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream resultStream = response.GetResponseStream();

//接收流两种方式

1.

MemoryStream ms = new MemoryStream();
byte[] buffer = new byte[1024];
while (true)
{
int sz = resultStream.Read(buffer, 0, 1024);
if (sz == 0) break;
ms.Write(buffer, 0, sz);
}
string content = Encoding.UTF8.GetString(ms.ToArray());
//图片

System.Drawing.Image img = System.Drawing.Image.FromStream(ms);

2.

StreamReader sr = new StreamReader(resultStream, Encoding.UTF8);
string html = sr.ReadToEnd();


sr.Close();
resultStream.Close();
request.Abort();
response.Close();
return html;
}
catch (WebException ex)
{
HttpWebResponse res = (HttpWebResponse)ex.Response;
Stream myResponseStream = res.GetResponseStream();
StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();  //retString 可以看到异常的具体原因,而ex看不到异常的具体原因
}

C# 发送HttpWebRequest和HttpWebResponse流读取方式及异常信息获取

原文:https://www.cnblogs.com/liushuixiying/p/10538248.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!