You are viewing a plain text version of this content. The canonical link for it is here.
Posted to httpclient-users@hc.apache.org by AbelMacAdam <ab...@gmail.com> on 2008/01/23 13:42:49 UTC

java.lang.IllegalArgumentException: host parameter is null

Hi,

After a few fruitless days struggling with JSSE, I finally found
Commons-HTTPClient. I'm trying out the example TrivialApp you can download
from the examples directory. And that example gives me an
IllegalArgumentException headache. 

The code looks like:
    static String username = "";
    static String password = "";
    static String theUrl   = "localhost";
    static Logger logger;

    private static final void printUsage(String text)
    {
    	logger.info(text);
    	System.out.println (text);
    }

   public static void main(String[] args)
    {
    	logger = Logger.getLogger(TrivialApp.class);
    	
        Credentials creds = null;
        creds = new UsernamePasswordCredentials(username, password);

        //create a singular HttpClient object
        HttpClient client = new HttpClient();

        //establish a connection within 5 seconds
        client.getHttpConnectionManager().
            getParams().setConnectionTimeout(5000);

        //set the default credentials
        if (creds != null) {
            client.getState().setCredentials(AuthScope.ANY, creds);
        }

        String url = theUrl;
        HttpMethod method = null;

        //create a method object
        method = new GetMethod(url);
        method.setFollowRedirects(true);

        //execute the method
        String responseBody = null;
        try{
            client.executeMethod(method);
            responseBody = method.getResponseBodyAsString();
        } catch (HttpException he) {
            printUsage("Http error connecting to '" + url + "'");
            printUsage(he.getMessage());
            System.exit(-4);
        } catch (IOException ioe){
        	printUsage("Unable to connect to '" + url + "'");
            System.exit(-3);
        }

        //write out the request headers
        printUsage("*** Request ***");
        printUsage("Request Path: " + method.getPath());
        printUsage("Request Query: " + method.getQueryString());
        Header[] requestHeaders = method.getRequestHeaders();
        for (int i=0; i<requestHeaders.length; i++){
            System.out.print(requestHeaders[i]);
        }

        //write out the response headers
        printUsage("*** Response ***");
        printUsage("Status Line: " + method.getStatusLine());
        Header[] responseHeaders = method.getResponseHeaders();
        for (int i=0; i<responseHeaders.length; i++){
            System.out.print(responseHeaders[i]);
        }

        //write out the response body
        System.out.println("*** Response Body ***");
        System.out.println(responseBody);

        //clean up the connection resources
        method.releaseConnection();

        System.exit(0);
    }

The stack trace I got for the Exception is:
Exception in thread "main" java.lang.IllegalArgumentException: host
parameter is null
	at
org.apache.commons.httpclient.HttpConnection.<init>(HttpConnection.java:206)
	at
org.apache.commons.httpclient.HttpConnection.<init>(HttpConnection.java:155)
	at
org.apache.commons.httpclient.SimpleHttpConnectionManager.getConnectionWithTimeout(SimpleHttpConnectionManager.java:175)
	at
org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:153)
	at
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
	at
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
	at TrivialApp.main(TrivialApp.java:107)

Long introduction. Concluding: Am I wrong in assuming the assignment 
    theURL = "localhost"; 
is wrong?

It is a real head scratcher. If you could point out where this goes wrong, I
would be obliged.

TIA,
Abel
-- 
View this message in context: http://www.nabble.com/java.lang.IllegalArgumentException%3A-host-parameter-is-null-tp15040749p15040749.html
Sent from the HttpClient-User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org


Re: java.lang.IllegalArgumentException: host parameter is null

Posted by sebb <se...@gmail.com>.
Just guessing, but try:

http://localhost/

On 23/01/2008, AbelMacAdam <ab...@gmail.com> wrote:
>
> Sorry, theUrl should be "http://localhost". :-[
>
> AbelMacAdam wrote:
> >
> > Hi,
> >
> > After a few fruitless days struggling with JSSE, I finally found
> > Commons-HTTPClient. I'm trying out the example TrivialApp you can download
> > from the examples directory. And that example gives me an
> > IllegalArgumentException headache.
> >
> > The code looks like:
> >     static String username = "";
> >     static String password = "";
> >     static String theUrl   = "localhost";
> >     static Logger logger;
> >
> >     private static final void printUsage(String text)
> >     {
> >       logger.info(text);
> >       System.out.println (text);
> >     }
> >
> >    public static void main(String[] args)
> >     {
> >       logger = Logger.getLogger(TrivialApp.class);
> >
> >         Credentials creds = null;
> >         creds = new UsernamePasswordCredentials(username, password);
> >
> >         //create a singular HttpClient object
> >         HttpClient client = new HttpClient();
> >
> >         //establish a connection within 5 seconds
> >         client.getHttpConnectionManager().
> >             getParams().setConnectionTimeout(5000);
> >
> >         //set the default credentials
> >         if (creds != null) {
> >             client.getState().setCredentials(AuthScope.ANY, creds);
> >         }
> >
> >         String url = theUrl;
> >         HttpMethod method = null;
> >
> >         //create a method object
> >         method = new GetMethod(url);
> >         method.setFollowRedirects(true);
> >
> >         //execute the method
> >         String responseBody = null;
> >         try{
> >             client.executeMethod(method);
> >             responseBody = method.getResponseBodyAsString();
> >         } catch (HttpException he) {
> >             printUsage("Http error connecting to '" + url + "'");
> >             printUsage(he.getMessage());
> >             System.exit(-4);
> >         } catch (IOException ioe){
> >               printUsage("Unable to connect to '" + url + "'");
> >             System.exit(-3);
> >         }
> >
> >         //write out the request headers
> >         printUsage("*** Request ***");
> >         printUsage("Request Path: " + method.getPath());
> >         printUsage("Request Query: " + method.getQueryString());
> >         Header[] requestHeaders = method.getRequestHeaders();
> >         for (int i=0; i<requestHeaders.length; i++){
> >             System.out.print(requestHeaders[i]);
> >         }
> >
> >         //write out the response headers
> >         printUsage("*** Response ***");
> >         printUsage("Status Line: " + method.getStatusLine());
> >         Header[] responseHeaders = method.getResponseHeaders();
> >         for (int i=0; i<responseHeaders.length; i++){
> >             System.out.print(responseHeaders[i]);
> >         }
> >
> >         //write out the response body
> >         System.out.println("*** Response Body ***");
> >         System.out.println(responseBody);
> >
> >         //clean up the connection resources
> >         method.releaseConnection();
> >
> >         System.exit(0);
> >     }
> >
> > The stack trace I got for the Exception is:
> > Exception in thread "main" java.lang.IllegalArgumentException: host
> > parameter is null
> >       at
> > org.apache.commons.httpclient.HttpConnection.<init>(HttpConnection.java:206)
> >       at
> > org.apache.commons.httpclient.HttpConnection.<init>(HttpConnection.java:155)
> >       at
> > org.apache.commons.httpclient.SimpleHttpConnectionManager.getConnectionWithTimeout(SimpleHttpConnectionManager.java:175)
> >       at
> > org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:153)
> >       at
> > org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
> >       at
> > org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
> >       at TrivialApp.main(TrivialApp.java:107)
> >
> > Long introduction. Concluding: Am I wrong in assuming the assignment
> >     theURL = "localhost";
> > is wrong?
> >
> > It is a real head scratcher. If you could point out where this goes wrong,
> > I would be obliged.
> >
> > TIA,
> > Abel
> >
>
> --
> View this message in context: http://www.nabble.com/java.lang.IllegalArgumentException%3A-host-parameter-is-null-tp15040749p15041125.html
> Sent from the HttpClient-User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
> For additional commands, e-mail: httpclient-users-help@hc.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org


Re: java.lang.IllegalArgumentException: host parameter is null

Posted by AbelMacAdam <ab...@gmail.com>.
Sorry, theUrl should be "http://localhost". :-[

AbelMacAdam wrote:
> 
> Hi,
> 
> After a few fruitless days struggling with JSSE, I finally found
> Commons-HTTPClient. I'm trying out the example TrivialApp you can download
> from the examples directory. And that example gives me an
> IllegalArgumentException headache. 
> 
> The code looks like:
>     static String username = "";
>     static String password = "";
>     static String theUrl   = "localhost";
>     static Logger logger;
> 
>     private static final void printUsage(String text)
>     {
>     	logger.info(text);
>     	System.out.println (text);
>     }
> 
>    public static void main(String[] args)
>     {
>     	logger = Logger.getLogger(TrivialApp.class);
>     	
>         Credentials creds = null;
>         creds = new UsernamePasswordCredentials(username, password);
> 
>         //create a singular HttpClient object
>         HttpClient client = new HttpClient();
> 
>         //establish a connection within 5 seconds
>         client.getHttpConnectionManager().
>             getParams().setConnectionTimeout(5000);
> 
>         //set the default credentials
>         if (creds != null) {
>             client.getState().setCredentials(AuthScope.ANY, creds);
>         }
> 
>         String url = theUrl;
>         HttpMethod method = null;
> 
>         //create a method object
>         method = new GetMethod(url);
>         method.setFollowRedirects(true);
> 
>         //execute the method
>         String responseBody = null;
>         try{
>             client.executeMethod(method);
>             responseBody = method.getResponseBodyAsString();
>         } catch (HttpException he) {
>             printUsage("Http error connecting to '" + url + "'");
>             printUsage(he.getMessage());
>             System.exit(-4);
>         } catch (IOException ioe){
>         	printUsage("Unable to connect to '" + url + "'");
>             System.exit(-3);
>         }
> 
>         //write out the request headers
>         printUsage("*** Request ***");
>         printUsage("Request Path: " + method.getPath());
>         printUsage("Request Query: " + method.getQueryString());
>         Header[] requestHeaders = method.getRequestHeaders();
>         for (int i=0; i<requestHeaders.length; i++){
>             System.out.print(requestHeaders[i]);
>         }
> 
>         //write out the response headers
>         printUsage("*** Response ***");
>         printUsage("Status Line: " + method.getStatusLine());
>         Header[] responseHeaders = method.getResponseHeaders();
>         for (int i=0; i<responseHeaders.length; i++){
>             System.out.print(responseHeaders[i]);
>         }
> 
>         //write out the response body
>         System.out.println("*** Response Body ***");
>         System.out.println(responseBody);
> 
>         //clean up the connection resources
>         method.releaseConnection();
> 
>         System.exit(0);
>     }
> 
> The stack trace I got for the Exception is:
> Exception in thread "main" java.lang.IllegalArgumentException: host
> parameter is null
> 	at
> org.apache.commons.httpclient.HttpConnection.<init>(HttpConnection.java:206)
> 	at
> org.apache.commons.httpclient.HttpConnection.<init>(HttpConnection.java:155)
> 	at
> org.apache.commons.httpclient.SimpleHttpConnectionManager.getConnectionWithTimeout(SimpleHttpConnectionManager.java:175)
> 	at
> org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:153)
> 	at
> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
> 	at
> org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
> 	at TrivialApp.main(TrivialApp.java:107)
> 
> Long introduction. Concluding: Am I wrong in assuming the assignment 
>     theURL = "localhost"; 
> is wrong?
> 
> It is a real head scratcher. If you could point out where this goes wrong,
> I would be obliged.
> 
> TIA,
> Abel
> 

-- 
View this message in context: http://www.nabble.com/java.lang.IllegalArgumentException%3A-host-parameter-is-null-tp15040749p15041125.html
Sent from the HttpClient-User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org