HttpWebResponse远程服务器返回错误: (500) 内部服务器错误 的解决办法
在工作中用C#开发了一个小程序,不断访问去请求一个网站的页面,在循环过程中有时会报“远程服务器返回错误: (500) 内部服务器错误”,有时不会,出现的时机也不太一样。开始以为是网站的问题,后来网站是可以正常访问的,那就是自己程序的问题了。
for (int i = refreshAccount.startNum; i <= refreshAccount.endNum; i++)
{
String data2 = urlstr;
loadBranch2Request = (HttpWebRequest)HttpWebRequest.Create(data2);
loadBranch2Request.CookieContainer = request2.CookieContainer;
loadBranch2Response = (HttpWebResponse)loadBranch2Request.GetResponse();
reader = new StreamReader(loadBranch2Response.GetResponseStream(), Encoding.UTF8); string result3 = reader.ReadToEnd();
loadBranch2Response.Close();
reader.Close();
…………
}
从两个方向找原因,一是HttpWebRequest的正确写法,二是出现上述问题的原因。在查阅了同类问题的解决方法后,大致判断为请求报文的问题。
两个参考博文如下:
C#模拟http 发送post或get请求:https://www.cnblogs.com/aaronguo/p/7063790.html
HttpWebResponse远程服务器返回错误: (500) 内部服务器错误 的解决办法:https://blog.csdn.net/henrycg55/article/details/5330323
想当然以为用的是get方法, 不用设置loadBranch2Request.ContentType的值,事实上设置Method和ContentType的值却解决了上面的问题。
loadBranch2Request.Method = "GET";
loadBranch2Request.ContentType = "text/html;charset=UTF-8";
for (int i = refreshAccount.startNum; i <= refreshAccount.endNum; i++)
{
String data2 = urlstr;
loadBranch2Request = (HttpWebRequest)HttpWebRequest.Create(data2);
loadBranch2Request.CookieContainer = request2.CookieContainer;
loadBranch2Request.Method = "GET";
loadBranch2Request.ContentType = "text/html;charset=UTF-8";
loadBranch2Response = (HttpWebResponse)loadBranch2Request.GetResponse();
reader = new StreamReader(loadBranch2Response.GetResponseStream(), Encoding.UTF8); string result3 = reader.ReadToEnd();
loadBranch2Response.Close();
reader.Close();
…………
}
如果想获取错误页面的源码,可以用如下方法
参考:https://www.cnblogs.com/cresuccess/archive/2009/12/09/1619977.html
用下面的代码就不论错误发生与否,都可以获得服务器段页面的源代码。
HttpWebResponse res;
try
{
res = (HttpWebResponse)req.GetResponse();
}
catch (WebException ex)
{
res = (HttpWebResponse)ex.Response;
}
StreamReader sr = new StreamReader(res.GetResponseStream(), strEncode);
strHtml = sr.ReadToEnd();
当异常发生事后,WebException 中不仅有 StatusCode 标志着 HTTP 的错误代码,而且它的 Response 属性还包含由服务器发送的 WebResponse,来指示遇到的实际 HTTP 错误。
HttpWebResponse远程服务器返回错误: (500) 内部服务器错误 的解决办法的更多相关文章
- HttpWebResponse远程服务器返回错误: (500) 内部服务器错误。
现象 我们编码实现请求一个页面时,请求的代码类似如下代码: HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strUrl); req.Us ...
- HttpWebResponse远程服务器返回错误: (500) 内部服务器错误
现象 我们编码实现请求一个页面时,请求的代码类似如下代码: HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strUrl);req.Use ...
- "远程服务器返回错误: (500) 内部服务器错误"错误处理
公司购买的百傲瑞达一卡通软件,提供Restful API调用,使用SoapUI能够调用成功,但在C#里用代码调用时一直报错:"远程服务器返回错误: (500) 内部服务器错误" 找 ...
- (C#)调用Webservice,提示远程服务器返回错误(500)内部服务器错误
因为工作需要调用WebService接口,查了下资料,发现添加服务引用可以直接调用websevice 参考地址:https://www.cnblogs.com/peterpc/p/4628441.ht ...
- sharepoint 2013 reporting services 远程server返回错误: (500) 内部server错误。
在sharepoint 2013部署reporting services过程中,点击管理中心,server上的服务.系统配置.提示了一个错误: 远程server返回错误: (500) 内部server ...
- HTTP 错误 500.XX - Internal Server Error 解决办法
HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面,因为该页的相关配置数据无效. 详细错误信息 模块 IIS Web Core 通知 未知 处理程序 尚未 ...
- HTTP 错误 500.19 - Internal Server Error解决办法详解
最近在服务器端部署程序发现这个问题,HTTP 错误 500.19 - Internal Server Error,程序在本地跑是没有问题的.但是部署完,浏览程序就出现这个问题,今天这篇文章就是记录一下 ...
- aspx页面调用webapi接口报错:远程服务器返回错误:(500)内部服务器错误
代码在运行到response = (HttpWebResponse)request.GetResponse();就开始报错 原因:可能因为所调用的接口不存在或者接口中存在错误,可用postman测试接 ...
- 调用WebApi出现 远程服务器返回错误: (500) 内部服务器错误
一.检查错误错误 将 HttpWebResponse response = (HttpWebResponse)request.GetResponse();改为 HttpWebResponse resp ...
随机推荐
- golang结构体、接口、反射
struct结构体 struct用来自定义复杂数据结构,可以包含多个字段属性,可以嵌套; go中的struct类型理解为类,可以定义方法,和函数定义有些许区别; struct类型是值类型. struc ...
- JAVA002标识符的命名规则、关键字
标志符命名规则: 1.标志符可以由字母.数字.下划线(_)和美元符号($)组成,不能以数字开头($sen.Void) 2.标志符严格区分大小写 3.标志符不能是Java的关键字和保留字(eg:publ ...
- ecmall 学习记录2
1.ecmall 自带的写入日志方法:do_log4php("函数名","类名",$param); $param是参数 在类里调用写入之日的方法 需要先加载 ...
- 通用base.css —— 《编写高质量代码 web前端开发修炼之道》
@charset "utf-8"; /*CSS reset*/ html{color:#000;background:#FFF;} body,div,dl,dt,dd,ul,ol, ...
- 录制JMeter脚本的方式
一.使用BadBoy录制JMeter脚本 JMeter和BadBoy下载地址:点击去下载 1.打开BadBoy并输入你要录制脚本的网址 这里我输入百度的网址,可以看到step下已经有一个请求了 2.录 ...
- Web Server和Application Server之间的区别?
An "application server" is a fuzzy concept. Really, it just means software that hosts plug ...
- Parsing with Compositional Vector Grammars--paper
这篇和2012年的区别: 1)Max-Margin Training Objective J中RNN变为了CVG 2012-两个词向量合并并打分,这个-两个(词向量,POS)合并并打分 2012年: ...
- Coprime Sequence (HDU 6025)前缀和与后缀和的应用
题意:给出一串数列,这串数列的gcd为1,要求取出一个数使取出后的数列gcd最大. 题解:可以通过对数列进行预处理,求出从下标为1开始的数对于前面的数的gcd(数组从下标0开始),称为前缀gcd,再以 ...
- 缓慢拒绝服务攻击- slowloris.pl
How use Slowloris Requirements: # sudo apt-get update # sudo apt-get install perl # sudo apt-get i ...
- #考研笔记#计算机之PPT问题
PPT1. 幻灯片母版.版式.模板之间的联系与区别?见下 12 2. 占位符的意义用于幻灯片上,就表现为一个虚框,虚框内部往往有“单击此处添加标题”之类的提示语,一旦鼠标点击之后,提示语会自动消失.当 ...