我通过java访问网页如下:
URLConnection con = url.openConnection();
Run Code Online (Sandbox Code Playgroud)
但在某些情况下,网址会重定向到另一个网址.所以我想知道前一个网址重定向的网址.
以下是我作为回复得到的标题字段:
null-->[HTTP/1.1 200 OK]
Cache-control-->[public,max-age=3600]
last-modified-->[Sat, 17 Apr 2010 13:45:35 GMT]
Transfer-Encoding-->[chunked]
Date-->[Sat, 17 Apr 2010 13:45:35 GMT]
Vary-->[Accept-Encoding]
Expires-->[Sat, 17 Apr 2010 14:45:35 GMT]
Set-Cookie-->[cl_def_hp=copenhagen; domain=.craigslist.org; path=/; expires=Sun, 17 Apr 2011 13:45:35 GMT, cl_def_lang=en; domain=.craigslist.org; path=/; expires=Sun, 17 Apr 2011 13:45:35 GMT]
Connection-->[close]
Content-Type-->[text/html; charset=iso-8859-1;]
Server-->[Apache]
Run Code Online (Sandbox Code Playgroud)
所以目前,我正在从头Set-Cookie字段的值构建重定向的URL .在上面的例子中,重定向的URL是copenhagen.craigslist.org
是否有任何标准方法可以确定特定网址将重定向到哪个网址.
我知道当一个url重定向到其他url时,服务器会发送一个包含Location头字段的中间响应,该头字段告诉重定向的url但我没有通过该url.openConnection();方法接收到该中间响应.
我在 Scala 中使用 gatling ver 2.3.0。发送请求后是否有可能从重定向到变量获取 url?例如,我请求 192.168.1.30:8080/ 并且此链接将我重定向到 192.168.1.30:8080/token/123,我可以获得 /token/123 吗?我尝试使用此代码但发生错误 header.find.exists,除了在 Fiddler 中什么也没找到,我看到了这个标题
val httpConf = http
.baseURL("http://192.168.1.30:8080")
.acceptHeader("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")
.acceptEncodingHeader("gzip, deflate")
.acceptLanguageHeader("en-US,en;q=0.5")
.userAgentHeader("Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:16.0) Gecko/20100101 Firefox/16.0")
val scn = scenario("SCENARIO2")
.exec(http("open")
.get("/")
.check(header("Location").saveAs("url")))
.exec(session => {
val urlN = session.get("url").asOption[String]
print(urlN.getOrElse("nothing"))
session
})
Run Code Online (Sandbox Code Playgroud)