Я использую Android SDK 2.2, тестируя мое приложение с эмулятором. Я хочу отправить Сообщение HTTP. Когда я делаю я получаю UnknownHostException. Я поместил необходимые полномочия
<uses-permission android:name="android.permission.INTERNET" /
>
в manifest.xml. Также я могу открыть браузер на эмуляторе и перейти к URL без проблемы.
Вот мой код:
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost( uri );
HttpResponse response = null;
try
{
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(
2 );
nameValuePairs.add( new BasicNameValuePair( "id", "edit-name" ) );
nameValuePairs
.add( new BasicNameValuePair( "stringdata", userName ) );
httppost.setEntity( new UrlEncodedFormEntity( nameValuePairs ) );
// Execute HTTP Post Request
response = httpclient.execute( httppost );
// Log.i( "HttpManager:", "======> response: "
// + response.getEntity().getContent() );
}
catch (ClientProtocolException e)
{
Log.e( "HttpManager", "ClientProtocolException thrown" + e );
}
catch (IOException e)
{
Log.e( "HttpManager", "IOException thrown" + e );
}
Так, я чувствую себя довольно неубедительно... Тег разрешения INTERNET является дочерним тегом тега манифеста, а не тега приложения. Черт!