redirectdemo.java~2~

来自「这是用JAVA的SOCKET类实现的HTTP CLIENT的代码。通过它可以让原」· JAVA~2~ 代码 · 共 71 行

JAVA~2~
71
字号
package org.apache.commons.httpclient.demo;

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.methods.GetMethod;
import java.io.*;

public class RedirectDemo {
    public static void main(String[] args) {
        HttpClient client = new HttpClient();
        //设置代理服务器地址和端口
        client.getHostConfiguration().setProxy("90.0.12.21", 808);
        client.getHostConfiguration().setHost("www.imobile.com.cn", 80, "http");
        
        PostMethod post = new PostMethod("/search2005.php");
        
        try {
            client.executeMethod(post);
        } catch (IOException ex) {
        }
        
        System.out.println(post.getStatusLine().toString());

        post.releaseConnection();

        //检查是否重定向

        int statuscode = post.getStatusCode();

        if ((statuscode == HttpStatus.SC_MOVED_TEMPORARILY) ||

            (statuscode == HttpStatus.SC_MOVED_PERMANENTLY) ||

            (statuscode == HttpStatus.SC_SEE_OTHER) ||

            (statuscode == HttpStatus.SC_TEMPORARY_REDIRECT)) {

//读取新的URL地址

            Header header = post.getResponseHeader("location");

            if (header != null) {

                String newuri = header.getValue();

                if ((newuri == null) || (newuri.equals(""))) {

                    newuri = "/";
                }

                GetMethod redirect = new GetMethod(newuri);

                client.executeMethod(redirect);

                System.out.println("Redirect:" +
                                   redirect.getStatusLine().toString());

                redirect.releaseConnection();

            } else {

                System.out.println("Invalid redirect");
            }

        }


    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?