daiqiangbudainiu
V2EX  ›  Java

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

  •  
  •   daiqiangbudainiu · Nov 29, 2016 · 5636 views
    This topic created in 3519 days ago, the information mentioned may be changed or developed.
    示例
    //请求
    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 replies    2016-11-29 12:41:02 +08:00
    syahd
        1
    syahd  
       Nov 29, 2016
    HttpClient 的话可以 setFollowRedirects 。 http://drizzlewalk.blog.51cto.com/2203401/591472
    daiqiangbudainiu
        2
    daiqiangbudainiu  
    OP
       Nov 29, 2016
    @whwq2012 不是请求了这个地址就重定向的,是在这个网页里输入了帐号密码,点击登录,然后重定向的,不知道这种情况该怎么弄
    EINDEX
        3
    EINDEX  
       Nov 29, 2016 via Android
    你重定向的地址在外网可以访问吗?
    q397064399
        4
    q397064399  
       Nov 29, 2016
    我记得重定向是在 HTTP 头里面的,你找找 看 是不是 Location
    q397064399
        5
    q397064399  
       Nov 29, 2016
    <META HTTP-EQUIV=REFRESH CONTENT="1; URL=http://www.example.org/bar">.
    还有这种
    domty
        6
    domty  
       Nov 29, 2016
    http response 重定向会返回指定的状态码,比如 302 。返回的消息头有重定向地址 Location 。
    你拿着授权成功的标识(比如 cookie)重新访问就好了。
    jason19659
        7
    jason19659  
       Nov 29, 2016
    redirect_uri
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   899 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 22:03 · PVG 06:03 · LAX 15:03 · JFK 18:03
    ♥ Do have faith in what you're doing.