Подтвердить что ты не робот

С# - Как сделать HTTP-вызов

Я хотел сделать HTTP-вызов на веб-сайт. Мне просто нужно нажать URL и не хотите загружать или скачивать какие-либо данные. Самый простой и быстрый способ сделать это.

Я пробовал код ниже, но его медленный и после второго повторного запроса он просто переходит в тайм-аут на 59 секунд и, чем возобновляет:

WebRequest webRequest = WebRequest.Create("http://ussbazesspre004:9002/DREADD?" + fileName);
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.ContentLength = fileName.Length;

Stream os = webRequest.GetRequestStream();
os.Write(buffer, 0, buffer.Length);
os.Close();

Является ли использование WebClient более эффективным?

WebClient web = new WebClient();
web.UploadString(address);

Я использую .NET ver 3.5

4b9b3361

Ответ 1

У вас есть дополнительные вещи, если вы действительно просто пытаетесь позвонить на веб-сайт. Все, что вам нужно, это:

WebRequest webRequest = WebRequest.Create("http://ussbazesspre004:9002/DREADD?" + fileName);
WebResponse webResp = webRequest.GetResponse();

Если вы не хотите ждать ответа, вы можете посмотреть BeginGetResponse, чтобы сделать его асинхронным.

Ответ 2

Если вы не хотите загружать какие-либо данные, вы должны использовать:

webRequest.Method = "GET";

Если вам действительно не нужно возвращать какие-либо данные (например, если вы просто хотите проверить, доступна ли страница), используйте:

webRequest.Method = "HEAD";

В любом случае вместо webRequest.GetRequestStream() используйте:

WebResponse myWebResponse = webRequest.GetResponse();

Ответ 3

WebClient - это более короткий и более сжатый синтаксис, но за кулисами он использует WebRequest, поэтому с точки зрения производительности он не будет быстрее, он будет эквивалентен. Если вы хотите, чтобы это было быстрее, вам придется улучшить серверную часть script или вашу сетевую инфраструктуру. Проблема не на стороне клиента.