HttpWebRequest GetResponse()没有返回任何内容

时间:2014-01-22 07:03:44

标签: c# httpwebrequest getresponse

我编写了一个代码来调用返回一些数据的网站。我使用了HttpWebRequest.GetResponse()方法。当我在浏览器中点击url时,它会返回数据。但是在我的C#代码中,有时会返回数据,有时它不会返回任何内容。

请求不会丢失任何错误,例如超时或访问被拒绝。它什么都不返回。 如果我在代码中使用调试器,它将返回数据。

代码如下;

HttpWebRequest clnt = (HttpWebRequest)HttpWebRequest.Create(restURL);
var resp = clnt.GetResponse();
if ((resp.ContentLength > 0))
{
    using (System.IO.StreamReader str = new System.IO.StreamReader(resp.GetResponseStream()))
    {
        if (str != null)
        {
            string response = str.ReadToEnd();
            str.Close();
            return response;
        }
    }
}

如果我遗失任何东西,请帮助我。

1 个答案:

答案 0 :(得分:0)

您是否尝试过提供方法和内容类型?

clnt.Method = "POST";
clnt.ContentType = "application/x-www-form-urlencoded";

会是这样的:

HttpWebRequest httpWReq = (HttpWebRequest)WebRequest.Create(url);

        httpWReq.Method = "POST";
        httpWReq.ContentType = "application/x-www-form-urlencoded";

        HttpWebResponse response = (HttpWebResponse)httpWReq.GetResponse();

        string responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
        return responseString;

希望这能帮到你!