V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
warcraft1236
V2EX  ›  Java

JAVA 怎么才能获取重定向的地址呢?

  •  
  •   warcraft1236 · 2016-11-29 10:42:15 +08:00 · 5090 次点击
    这是一个创建于 2916 天前的主题,其中的信息可能已经有所发展或是发生改变。
    示例
    //请求
    https://api.weibo.com/oauth2/authorize?client_id=123050457758183&redirect_uri=http://www.example.com/response&response_type=code
    
    //同意授权后会重定向
    http://www.example.com/response&code=CODE
    

    上段是新浪微博给的示例,浏览器打开示例中请求那样的地址,打开的网页是让输入新浪微博帐号密码的网页,输入帐号密码之后,网页就会跳转到示例中同意授权后会重定向那样的网址,网址中code=后边的值就是需要获取的

    我尝试用 okhttp 来发送这个请求,但是返回的结果是授权页面,用浏览器打开,不知道怎么才能用 JAVA 获取到重定向的地址

    7 条回复    2016-11-29 12:41:02 +08:00
    whwq2012
        1
    whwq2012  
       2016-11-29 10:45:34 +08:00
    HttpClient 的话可以 setFollowRedirects 。 http://drizzlewalk.blog.51cto.com/2203401/591472
    warcraft1236
        2
    warcraft1236  
    OP
       2016-11-29 11:09:17 +08:00
    @whwq2012 不是请求了这个地址就重定向的,是在这个网页里输入了帐号密码,点击登录,然后重定向的,不知道这种情况该怎么弄
    EINDEX
        3
    EINDEX  
       2016-11-29 11:11:36 +08:00 via Android
    你重定向的地址在外网可以访问吗?
    q397064399
        4
    q397064399  
       2016-11-29 12:11:57 +08:00
    我记得重定向是在 HTTP 头里面的,你找找 看 是不是 Location
    q397064399
        5
    q397064399  
       2016-11-29 12:12:21 +08:00
    <META HTTP-EQUIV=REFRESH CONTENT="1; URL=http://www.example.org/bar">.
    还有这种
    domty
        6
    domty  
       2016-11-29 12:20:09 +08:00
    http response 重定向会返回指定的状态码,比如 302 。返回的消息头有重定向地址 Location 。
    你拿着授权成功的标识(比如 cookie)重新访问就好了。
    jason19659
        7
    jason19659  
       2016-11-29 12:41:02 +08:00
    redirect_uri
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1037 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 23:17 · PVG 07:17 · LAX 15:17 · JFK 18:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.