URL запроса без перенаправления в Go
Я пишу тест производительности для сценария перенаправления.
Я пишу своей программе, чтобы запросить определенный URL, который перенаправляет в AppStore. Но я не хочу скачивать страницу AppStore. Я просто хочу войти перенаправить URL или ошибка.
Как мне сказать, чтобы перейти к запросу URL без второго запроса перенаправления?
ОБНОВИТЬ
Оба ответа верны, НО:
Я пробовал оба решения. Я делаю бенчмаркинг. Я запускаю 1 или много процессов go с 10 - 500 процедурами go. Они запрашивают URL в цикле. Мой сервер также написан на го. Он сообщает количество запросов каждую секунду.
Первое решение:http.DefaultTransport.RoundTrip
- работает медленно, выдает ошибки. Первые 4 секунды работает нормально. Делая 300-500 запросов, производительность падает до 80 запросов в секунду.Затем падает до 0-5 запросов в секунду и скрипт запроса начинает получать ошибки, такие как
dial tcp IP:80: A connection attempt failed because the connected
party did not properly respond after a period of time, or established
connection failed because connected host has failed to respond.
Я думаю, это повторно использовать соединение, которое закрыто.
Второе решение:CheckRedirect field
работает с постоянной производительностью. Я не уверен, использует ли он повторно соединения или открывает новое соединение для каждого запроса. я создаюclient
за каждый запрос в цикле. Это то, как он будет вести себя в реальной жизни (каждый запрос - это новое соединение). Есть ли способ гарантировать, что соединения закрываются после каждого запроса и не используются повторно?Вот почему я собираюсь отметить второе решение как таковое, которое ответит на мой вопрос. Но для моего исследования очень важно, чтобы каждый запрос был новым соединением. Как я могу убедиться со вторым решением?