in src/main/scala/ophan/google/indexing/observatory/RedirectFollower.scala [29:54]
def requestFor(uri: URI): Request =
new Request.Builder()
.url(uri.toURL)
.head()
.header("User-Agent", "curl/7.54")
.build();
override def fetchResponseFor(uri: URI)(implicit ec: ExecutionContext): Future[HttpResponseSummary] = {
Future {
blocking {
httpClient.newCall(requestFor(uri)).execute()
}
}.map {
response =>
val statusCode = response.code()
val responseOk = statusCode == 200
if (!responseOk) {
logger.warn(Map(
"redirect.resolution.uri" -> uri.toString,
"redirect.resolution.statusCode" -> statusCode
), s"Bad status code $statusCode (not a redirect!) while trying to resolve '$uri'")
}
HttpResponseSummary(statusCode, response.headers.location)
}
}