# jakarta.HttpClient: Port bei GetMethod angeben



## phlox81 (2. Aug 2006)

Also, ich hab vor einem Jahr eine art Crawler geschrieben, der eine Webseite absucht,
und dann die Links verfolgt. Das eigentliche Ziel dahinter ist, einfach nur die Links zu testen,
und die auszugeben, bei denen Fehler auftraten.

Nun läuft aber unsere neue Testinstanz nicht mehr auf dem Defaultport 80,
wie es die alte tat, sondern auf 11000. Als erstes dachte ich kein problem,
ich häng erstmal an die URL :11000 an, evtl. klappts ja dann, aber das tuts offensichtlich net.
Die Doku von Jakarta hab ich mir schon durchgelesen, aber nix nennenswertes
bisher gefunden, wie ich z.b. diese Einstellung direkt beim HttpClient setzte, oder
in der GetMethod Klasse es einstelle.

Hier mein bisheriger Code:

```
public  HTTPGet(){
		// HttpClient erzeugen
		http = new HttpClient();
		http.setState(new HttpState());
		//ConfigReader config = ConfigReader.instance();
		if(proxy != null)
			http.getHostConfiguration().setProxy(proxy, port);
    	if(username != null)
    	{
			UsernamePasswordCredentials upc = new UsernamePasswordCredentials();
	    	upc.setPassword(password);
	    	upc.setUserName(username);
	    	http.getState().setProxyCredentials(null,null ,upc);
    	}
	}

	public String GetRequest(String request){
		HttpMethod method=null;
		if(request == null)
			return "";
		try
		{
			//if(http.getHttpConnectionManager().getConnection(http.getHostConfiguration()).isOpen())
			{
		    	//method = new GetMethod(request);
				ConfigReader config = ConfigReader.instance();
				request = request +":" + config.Getmainport();
				method = new GetMethod(request);
				System.out.println("Port:" + method.getURI().getPort());
				method.addRequestHeader("User-Agent:",config.Getuseragent());
				//method.addRequestHeader("Accept","application/xml");
			/*snip*/
			}
		}
		catch(SocketTimeoutException ste)
		{
		}
		catch (Exception e)
		{
		}
		return null;
	}
```
Wenn ich es so mache, bekomme ich bei http.getHostConfiguration eine Illegal Argument Exception:

```
//http.getHttpConnectionManager().getConnection(http.getHostConfiguration()).setPort(config.Getmainport());// getHostConfig liefert null zurück
```

Weiss jemand wie ich den Port entsprechend setzen kann?

phlox


----------



## phlox81 (10. Aug 2006)

so habs jetzt gelöst.
Hier der Code:


```
HostConfiguration hostconfig= new HostConfiguration();
		hostconfig.setHost(config.Getstart(),config.Getmainport());
		http.setHostConfiguration(hostconfig);
```


----------



## phlox81 (11. Sep 2006)

Hm, zu früh gefreut...
Ich habe jetzt eine Testversion meines Programmes auf meinem Notebook am laufen,
und auf Port 80 funktioniert es einwandfrei. Wenn ich allerdings nun mit obigen code auf 
z.b. port 10000 zugreifen will, bekomme ich eine "java.net.ConnectException".
Auf port 10000 lauscht aber definitiv der Apache, das kann ich mit dem Browser verifizieren.
Ausserdem hab ichs selber in die httpd.conf eingetragen  :roll: 

Also wo könnte da das Problem liegen?
Ich verwende jakarta.commons.httpclient für die Httpverbindung.


----------



## phlox81 (12. Sep 2006)

Update...

Also, offensichtlich verbindet er sich trotz einstellung immer noch auf port 80, welchen er natürlich
nicht finden kann. Daher die Exception. Nun damit lautet die Preisfrage immer noch:
Wie setze ich den zu benutzenden Port in jakarta.commons.httpclient korrekt???

thx.

phlox


----------

