2015-08-29 59 views
0

非法參數異常:主機名不能爲null非法參數異常:主機名不能爲null

我得到這個錯誤在最後一行

HttpResponse httpResponse = httpClient.execute(get) 

我嘗試了所有可能的解決方案如編碼URL如果包含空間等..和變量如名稱和電話所有這些都是從我的通話類

Calendar cal = Calendar.getInstance(); 
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss.SSS"); 
String time = sdf.format(cal.getTime()); 
String value="Dish:"+cr.getString(1)+"Quantity:"+cr.getInt(2)+"Price"+cr.getString(3).trim()+"TotalPrice:"+Integer.parseInt(cr.getString(3))*cr.getInt(2)+"Address:"+address+"CustomerName:"+name+"RestaurantName:"+cr.getString(4).trim(); 
url = "http:twowaits.in/orderapp.php?name="+name.trim()+"&no="+phone.trim()+"&add="+URLEncoder.encode(address, "UTF-8")+"&rest="+URLEncoder.encode(cr.getString(4),"UTF-8")+"&cost="+cr.getString(3).trim()+"&value="+URLEncoder.encode(value, "UTF-8")+"&dishname="+cr.getString(1).trim()+"&qty="+cr.getInt(2)+"&time="+time; 
HttpGet get = new HttpGet(url); 
DefaultHttpClient httpClient = new DefaultHttpClient(); 
HttpResponse httpResponse = httpClient.execute(get);  

回答

0

您忘記http:之後的//

url = "http://twowaits.in/...... 

stacktrace說這一切;您的網址不包含主機名(域名或IP)。這意味着你要麼沒有提供,要麼你在某個地方發生了格式錯誤,所以URL不能被正確解析。在這種情況下,您確實提供了一個域名,這只是該網址格式不正確。

請注意,您使用的Apache HttpClient已被棄用,Google建議您切換到其他內容,例如, URLConnectionSquare's OKHttp也是一個很好的選擇。

此外,您可能想嘗試使代碼更具可讀性。爲你的URI使用構建器模式可能會有很大的幫助。請參閱URIBuilder或者您可以使用StringBuilder