通过httpwebrequest实现http的post和get方法莫名出现500内部服务器错误的解决办法
2017-04-25 12:58
996 查看
通过httpwebrequest实现http的post方法
通过httpwebrequest实现http的get方法
一般来说如果通过浏览器能访问那么通过httpwebrequest应该也可以正常访问,但是这次就碰到了一个通过浏览器能正常访问通过httpwebrequest报500内部服务器错误的问题,真是莫名其妙让人百思不得其解,后来经过仔细分析查找发现网站的Application_BeginRequest事件中有一段分析http headers的User-agent的代码没加错误处理,而通过上面的代码并没有给User-agent初始化,这或许就是问题的根源。
当然除了User-agent以外可能还有别的东西可能会有影响,httpwebrequest可以设置的http headers如下表
再碰到类似的问题就检查Application_BeginRequest里有没有对http headers做什么操作吧。
Dim data As Byte() data = System.Text.Encoding.UTF8.GetBytes("...") '参数name1=value1&name2=value2... '发送请求 Dim myReq As System.Net.HttpWebRequest = System.Net.WebRequest.Create(svcurl) myReq.Method = "POST" myReq.ContentType = "application/x-www-form-urlencoded;charset=UTF-8" myReq.ContentLength = data.Length Dim myStream As System.IO.Stream = myReq.GetRequestStream myStream.Write(data, 0, data.Length) myStream.Close() '接收响应 Dim myResponse As System.Net.HttpWebResponse = myReq.GetResponse Dim strResponse As String = "" myStream = myResponse.GetResponseStream Dim myStreamReader As New System.IO.StreamReader(myStream) strResponse = myStreamReader.ReadToEnd myStreamReader.Close() myStreamReader = Nothing myStream.Close() myStream = Nothing myResponse.Close() myResponse = Nothing myReq = Nothing
通过httpwebrequest实现http的get方法
'发送Web请求 Dim myReq As System.Net.HttpWebRequest = System.Net.WebRequest.Create(svcurl) myReq.Headers.Set("Pragma", "no-cache") myReq.Method = "GET" '接收响应 Dim myResponse As System.Net.HttpWebResponse = myReq.GetResponse Dim strResponse As String = "" Dim myStream As System.IO.Stream = myResponse.GetResponseStream Dim myStreamReader As New System.IO.StreamReader(myStream) strResponse = myStreamReader.ReadToEnd myStreamReader.Close() myStreamReader = Nothing myStream.Close() myStream = Nothing myResponse.Close() myResponse = Nothing myReq = Nothing
一般来说如果通过浏览器能访问那么通过httpwebrequest应该也可以正常访问,但是这次就碰到了一个通过浏览器能正常访问通过httpwebrequest报500内部服务器错误的问题,真是莫名其妙让人百思不得其解,后来经过仔细分析查找发现网站的Application_BeginRequest事件中有一段分析http headers的User-agent的代码没加错误处理,而通过上面的代码并没有给User-agent初始化,这或许就是问题的根源。
当然除了User-agent以外可能还有别的东西可能会有影响,httpwebrequest可以设置的http headers如下表
标头 | 设置方 |
---|---|
Accept | 由 Accept 属性设置。 |
Connection | 由 Connection 属性和 KeepAlive 属性设置。 |
Content-Length | 由 ContentLength 属性设置。 |
Content-Type | 由 ContentType 属性设置。 |
Expect | 由 Expect 属性设置。 |
Date | 由系统设置为当前日期。 |
Host | 由系统设置为当前主机信息。 |
If-Modified-Since | 由 IfModifiedSince 属性设置。 |
Range | 由 AddRange 方法设置。 |
Referer | 由 Referer 属性设置。 |
Transfer-Encoding | 由 TransferEncoding 属性设置(SendChunked 属性必须为 true)。 |
User-Agent | 由 UserAgent 属性设置。 |
相关文章推荐
- C#通过WebClient/HttpWebRequest实现http的post/get方法
- 客户端访问sharepoint服务器时出现Http 500内部服务器错误的解决方法
- asp.net 发送 xml post请求和接收 xml post请求时出现(500) 内部服务器错误的解决办法
- HttpWebResponse远程服务器返回错误: (500) 内部服务器错误 的解决办法
- C#通过WebClient/HttpWebRequest实现http的post/get方法
- C#通过WebClient/HttpWebRequest实现http的post/get方法
- C#通过WebClient/HttpWebRequest实现http的post/get方法
- C#通过WebClient/HttpWebRequest实现http的post/get方法
- C#通过WebClient/HttpWebRequest实现http的post/get方法
- C#通过WebClient/HttpWebRequest实现http的post/get方法与java对接
- C#通过WebClient/HttpWebRequest实现http的post/get方法与java对接
- 解决IIS出现HTTP 500内部服务器错误的方法
- 转:C#通过WebClient/HttpWebRequest实现http的post/get方法
- ASP.NET通过Base64String上传超过3M的文件时,出现“远程服务器返回错误: (500) 内部服务器错误。“,的解决方法
- C#通过WebClient/HttpWebRequest实现http的post/get方法
- C#通过WebClient/HttpWebRequest实现http的post/get方法
- C#通过WebClient/HttpWebRequest实现http的post/get方法
- 服务器出现HTTP500错误解决方法(屏蔽友好错误页,显示真正错误提示)
- IIS 常见错误HTTP 500 内部服务器错误 解决方法