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 ответ

Решение

Вы пытались дать метод и тип контента?

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;

Надеюсь, это поможет вам!

Другие вопросы по тегам