We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now

x

HTTP Client in Apache return "Target host must not be null"

isuhendro
isuhendro asked
on
Medium Priority
2,224 Views
Last Modified: 2013-12-06
Dear experts,
I am using Apache HTTP client library for Android emulator.
http://hc.apache.org/httpcomponents-client/httpclient/apidocs/org/apache/http/client/package-summary.html

However whenever I enter e.g "www.google.com" or "http://www.google.com", it always return error "Target host must not be null"
But when i convert into IP Address, all works well.
Would you be able to advice?

Thanks!
public void run() {
			Log.i("GList", "downloadProcess run()");
			props = new Properties();
 
			try {
				String url;
				url = "http://www.google.com"; //THIS IS FAILED
				//url = "http://216.239.61.104"; // THIS IS OK
				HttpManager.doGet(url, props);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			// TODO Auto-generated method stub
		}

Open in new window

Comment
Watch Question

CERTIFIED EXPERT
Top Expert 2016

Commented:
>>HttpManager.doGet(url, props);

What's that? It's not Apache HttpClient..

Author

Commented:
Hi CEHJ,
HttpManager just a wrapper of Apache HTTP client, please refer to the static method inside HttpManager below.
	public static String doGet (String serviceEndpoint, Properties props) throws Exception
	{
		HttpClient httpClient = new DefaultHttpClient();
		StringBuilder uriBuilder = new StringBuilder(serviceEndpoint);
		StringBuffer sbResponse = new StringBuffer ();		
		Enumeration<Object> enumProps = props.keys();
		String key, value = null;
		
		if (enumProps.hasMoreElements()) uriBuilder.append('?');
		while (enumProps.hasMoreElements())
		{
			key = (String)enumProps.nextElement();
			value = (String)props.get(key);
			uriBuilder.append(key);
			uriBuilder.append('=');
			uriBuilder.append(java.net.URLEncoder.encode(value));
			uriBuilder.append('&');			
		}
		HttpGet request = new HttpGet(uriBuilder.toString());
		
	HttpResponse response = httpClient.execute(request);
 
		

Open in new window

CERTIFIED EXPERT
Top Expert 2016
Commented:
Unlock this solution with a free trial preview.
(No credit card required)
Get Preview

Author

Commented:
hi CEHJ,

thank you for your suggestion.
somehow this line java.net.URLEncoder gave invalid form URL
CERTIFIED EXPERT
Top Expert 2016

Commented:
:-)
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a free trial preview!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.