【问题标题】:Getting Internal Server Error获取内部服务器错误
【发布时间】:2013-02-06 07:58:49
【问题描述】:

这是我的代码,我在其中使用 HttpWebRequest 请求 URL 并从 HttpWebResponse 获取响应。但是httpwebresponse对象抛出了一个异常,就是Internal Server Error!

url="http://www.google.com/"

Uri urlCheck = new Uri(url);
request = (HttpWebRequest)WebRequest.Create(url); 
request.Timeout = 5000000;
response = (HttpWebResponse)request.GetResponse();    //Here Getting The Exception..
receiveStream = response.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
strmRead = new StreamReader(receiveStream, encode);
result = strmRead.ReadToEnd();

【问题讨论】:

  • 尝试调试服务。服务抛出异常,客户端代码可能没问题。
  • @Emo:谢谢你先生,但是你能举个例子吗?或者如何调试服务???

标签: c# .net httpwebrequest httpwebresponse


【解决方案1】:

如果客户端不支持 cookie,网站似乎会崩溃。因此,您可以通过设置 CookieContainer 在客户端启用对 cookie 的支持:

using System;
using System.IO;
using System.Net;

class Program
{
    static void Main()
    {
        var url = "http://links.casemakerlegal.com/states/MS/books/Case_Law/results?search[Cite]=77%20So.3d%201094";
        var request = (HttpWebRequest)WebRequest.Create(url);
        request.CookieContainer = new CookieContainer();
        using (var response = request.GetResponse())
        using (var stream = response.GetResponseStream())
        using (var reader = new StreamReader(stream))
        {
            string result = reader.ReadToEnd();
            Console.WriteLine(result);
        }
    }
}

【讨论】:

    【解决方案2】:

    “Internal Server Error”的意思就是,你正在调用的服务器上的一个内部错误。

    这可能是服务器上的一个临时问题,与您无关,也可能是服务器不喜欢您传递给它的数据。检查以下内容:

    • 77%20So.3d%201094 是一个有效的搜索值吗?
    • 您是否应该随请求一起发送 API 密钥?
    • 您是否应该对自己进行身份验证,例如使用 HTTP 用户名/密码摘要或 X509 证书?

    【讨论】:

    • 实际上先生,当我在 Mozilla FireFox 中手动浏览时,此链接正常工作.....什么是 API 密钥??
    猜你喜欢
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-02
    相关资源
    最近更新 更多