В golang, как определить окончательный URL после серии перенаправлений?

Так что я'используя пакет net / http. Я'm Получение URL-адреса, который я точно знаю, - это перенаправление. Он может даже перенаправить пару раз, прежде чем попасть на окончательный URL. Перенаправление выполняется автоматически за кулисами.

Есть ли простой способ выяснить, каким был окончательный URL-адрес без хакерского обходного пути, которое включает установку поля CheckRedirect для объекта http.Client?

Полагаю, я должен упомянуть, что, как мне кажется, я нашел обходной путь, но этоЭто своего рода хакерство, так как оно включает использование глобальной переменной и установку поля CheckRedirect в пользовательском http.Client.

Там'Должен быть более чистый способ сделать это. Я'Я надеюсь на что-то вроде этого: я

package main

import (
  "fmt"
  "log"
  "net/http"
)

func main() {
  // Try to GET some URL that redirects.  Could be 5 or 6 unseen redirections here.
  resp, err := http.Get("http://some-server.com/a/url/that/redirects.html")
  if err != nil {
    log.Fatalf("http.Get => %v", err.Error())
  }

  // Find out what URL we ended up at
  finalURL := magicFunctionThatTellsMeTheFinalURL(resp)

  fmt.Printf("The URL you ended up at is: %v", finalURL)
}
 peterSO28 мая 2013 г., 14:17
 Aaron Johnson28 мая 2013 г., 07:24
прости, я неу вас нет реального URL для работы. Это для моей работы и сайта, который яя работаю с необходимыми учетными данными и т.д.

Ответы на вопрос(1)

Решение Вопроса
package main

import (
    "fmt"
    "log"
    "net/http"
)

func main() {
    resp, err := http.Get("http://stackoverflow.com/q/16784419/727643")
    if err != nil {
        log.Fatalf("http.Get => %v", err.Error())
    }

    // Your magic function. The Request in the Response is the last URL the
    // client tried to access.
    finalURL := resp.Request.URL.String()

    fmt.Printf("The URL you ended up at is: %v\n", finalURL)
}

The URL you ended up at is: http://stackoverflow.com/questions/16784419/in-golang-how-to-determine-the-final-url-after-a-series-of-redirects
 Aaron Johnson03 июл. 2013 г., 04:20
Спасибо за ответ! Это сработало для меня, как вы продемонстрировали. Извините, мне потребовалось много времени, чтобы отметить это как правильный ответ. Некоторые более приоритетные предметы появились на работе.

Ваш ответ на вопрос