Apache HttpComponents: org.apache.http.client.ClientProtocolException

Also benutze ich Apache HttpComponents, um http-Anfragen in Java zu bearbeiten. Jetzt möchte ich die wiederverwendenDefaultHttpClient, was nach diesem Beispiel möglich sein soll:http://wiki.apache.org/HttpComponents/QuickStart. Das Beispiel selbst gibt einen ssl-Fehler aus, so dass ich ihn ein wenig geändert und vereinfacht habe. Jetzt bekomme ich immer eineorg.apache.http.client.ClientProtocolException

Hier ist mein Beispielprogramm, im Grunde fordere ich nur 2 Webseiten an, die dasselbe verwendenDefaultHttpClient.

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;


public class ClientFormLogin {

    public static void main(String[] args) throws Exception {

        DefaultHttpClient httpclient = new DefaultHttpClient();

        //Handle first request.
        HttpGet httpget = new HttpGet("http://tweakers.net/nieuws/82969/amazon-nederland-opent-digitale-deuren-in-september.html");
        HttpResponse response = httpclient.execute(httpget);
        System.out.println("Execute finished");
        HttpEntity entity = response.getEntity();
        String page = readInput(entity.getContent());
        System.out.println("Request one finished without problems!");

        //Handle second request
        HttpGet httpost = new HttpGet("http://gathering.tweakers.net/forum/list_messages/1506977/last");
        response = httpclient.execute(httpost);
        entity = response.getEntity();
        page = readInput(entity.getContent());
        System.out.println("Request two finished without problems!");
    }

    private static String readInput(InputStream in) throws IOException {
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        byte bytes[] = new byte[1024];

        int n = in.read(bytes);

        while (n != -1) {
            out.write(bytes, 0, n);
            n = in.read(bytes);
        }

        return new String(out.toString());
    }
}

Beim Ausführen meines Beispiels erhalte ich den folgenden Fehler

Request one finished without problems!
Exception in thread "main" org.apache.http.client.ClientProtocolException
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:909)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:784)
    at ClientFormLogin.main(ClientFormLogin.java:29)
Caused by: org.apache.http.HttpException: Unable to establish route: planned = {}->http://gathering.tweakers.net; current = {}->http://tweakers.net
    at org.apache.http.impl.client.DefaultRequestDirector.establishRoute(DefaultRequestDirector.java:842)
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:645)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:480)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
    ... 3 more

Jeder kann mir einige Hinweise geben, wie ich dieses Problem lösen kann, außer einen neuenDefaultHttpClient für jede anfrage.

Bearbeiten

Ich habe gerade herausgefunden, ob ich auf derselben Domain bleibe, bei der ich keine Probleme habe.

page1: 'http://tweakers.net/nieuws/82969/amazon-nederland-opent-digitale-deuren-in-september.html'
page2: 'http://tweakers.net/nieuws/82973/website-nujij-belandt-op-zwarte-lijst-google-door-malware.html'

Ich habe keine Probleme, wenn ich:

page1: 'http://tweakers.net/nieuws/82969/amazon-nederland-opent-digitale-deuren-in-september.html'
page2: 'http://gathering.tweakers.net/forum/list_messages/1506076/last'

Ich bekomme den Fehler.

Ofc Ich sehe dies eine Minute nach dem Posten meiner Frage. Außer wenn mir jemand sagen kann, wie ich mit der gleichen Domain 2 sperate Domains erstellen kannDefaultHttpClient meine frage ist schon beantwortet

Antworten auf die Frage(1)

Ihre Antwort auf die Frage