У меня есть следующий код, который я использую для отправки запроса на сервер.
String inputXML = createInputXML(searchText);
HttpClient httpclient = new DefaultHttpClient();
String url = "http://mysite.com/action";//Works fine if I use IP address directly,for eg:http://1.2.3.4/action
HttpPost httppost = new HttpPost(url);
HttpResponse response=null;
StringEntity se = null;
try {
se = new StringEntity(inputXML, HTTP.UTF_8);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
se.setContentType("text/xml");
httppost.setHeader("Content-Type","application/xml;charset=UTF-8");
httppost.setEntity(se);
try {
response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Когда я запускаю программу на эмуляторе, я получаю исключение UnKnownHostException в строке
response = httpclient.execute(httppost);
Если я использую IP-адрес напрямую вместо имени хоста, запрос отправляется правильно.
Обратите внимание на следующие моменты:
- Я использую Android 2.3.3
- Я добавил
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
в манифесте xml
- Настройки прокси обновляются в APN эмулятора.
- Используя браузер в эмуляторе, я могу получить доступ к веб-сайту с именами их хостов.
Есть идеи, почему это вызывает проблемы?