为什么相同的java httpclient代码在不同的平台(linux和windows)下返回不同的结果?

为什么相同的java httpclient代码在不同的平台(linux和windows)下返回不同的结果?,java,linux,apache,httpclient,web-crawler,Java,Linux,Apache,Httpclient,Web Crawler,当我在windows和linux下运行相同的代码时,会得到不同的结果!换句话说,它在windows中运行良好,而在linux中却失败了!有人能帮我解决这个问题吗 我要获取的网页是 代码如下所示: import java.io.BufferedReader; import java.io.InputStreamReader; import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler; import org.apache.

当我在windows和linux下运行相同的代码时,会得到不同的结果!换句话说,它在windows中运行良好,而在linux中却失败了!有人能帮我解决这个问题吗

我要获取的网页是

代码如下所示:

import java.io.BufferedReader;
import java.io.InputStreamReader;

import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;

public class api {
public String fetchAPI(String url) {
    GetMethod getMethod;
    HttpClient client = new HttpClient();
    int statusCode;
    getMethod = new GetMethod(url);
    getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
            new DefaultHttpMethodRetryHandler());
    getMethod.getParams().setParameter("http.protocol.cookie-policy",
            CookiePolicy.BROWSER_COMPATIBILITY);
    getMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 5000);

    BufferedReader reader = null;
    String result = "";
    String line = "";
    try {
        statusCode = client.executeMethod(getMethod);
        if (statusCode != HttpStatus.SC_OK) {
            System.err.println("Method failed: "
                    + getMethod.getStatusLine());
        }
        reader = new BufferedReader(new InputStreamReader(
                getMethod.getResponseBodyAsStream(), "utf-8"));
        if (reader != null) {
            while ((line = reader.readLine()) != null) {
                // System.out.println(line);
                result += line;
            }
            reader.close();
            getMethod.releaseConnection();
            return result;
        } else{
            reader.close();
            getMethod.releaseConnection();
            return "";
        }

    } catch (Exception e) {
        getMethod.releaseConnection();
        System.out.println("opsss");
        return "";
    }
}

public static void main(String[] arg){
System.out.println(fetchAPI("http://www.linkedin.com/pub/song-xuemeng/4b/683/565"));
}


}

什么样的失败?如果是异常,请发布堆栈跟踪。可能有很多原因,包括许多与Linux和Windows之间的差异无关的原因。如果您想让我们帮助您,您需要向我们提供更多信息。您不应该使用不再受支持的Commons HttpClient,而应该使用HttpComponents HttpClient:并且此代码甚至不编译,您从静态的main调用非静态的fetchAPI。您的else is dead代码读取器将永远不会为空,你影响它就在前面的那一行。一旦我编译了代码,它就会正确地获取页面的内容。