2011-05-11 2 views
0

Я разрабатываю приложение, которое делает подключение к моему сайту drupal. Следующий код я attemping использовать:Проблема с HTTP-сообщением HTTP

public class SignIn extends Activity { 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     try { 
      HttpClient client = new DefaultHttpClient(); 
      String postURL = "http://test2.icerge.com/testpoint/user"; 
      HttpPost post = new HttpPost(postURL); 
       List<NameValuePair> params = new ArrayList<NameValuePair>(); 
       params.add(new BasicNameValuePair("account[name]", "Bob Kelso")); 
       params.add(new BasicNameValuePair("account[pass]", "awefulawefulman")); 
       params.add(new BasicNameValuePair("account[mail]", "[email protected]")); 
       UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params,HTTP.UTF_8); 
       post.setEntity(ent); 
       HttpResponse responsePOST = client.execute(post); 
       HttpEntity resEntity = responsePOST.getEntity(); 
       if (resEntity != null) {  
        Log.i("RESPONSE",EntityUtils.toString(resEntity)); 
       } 
     } catch (Exception e) { 
      e.printStackTrace(); 
      Log.i("ERROR",e.toString()); 
     } 
    } 
} 

Но я продолжаю получать java.net.unknownhostexception. У меня есть разрешения INTERNET, установленные в файле манифеста.

Я должен упомянуть, что эта проблема не возникает на эмуляторе, а на реальном устройстве. Может ли кто-нибудь помочь и дать мне некоторые указания, почему это работает?

ответ

1

Это распространенная проблема при разработке на Android-эмуляторах. Остановите (убивайте) adb.exe и эмулятор, и он обычно работает для меня.

+0

Да, случается со мной, я должен перезапустить эмулятор каждый раз, чтобы исправить это. Раздражающий, но с моментальными снимками это больше не боль. – dmon

+0

Привет, ребята, спасибо за ответ, но я должен упомянуть, что эта проблема не происходит на эмуляторе, а на реальном устройстве. – sisko

+0

Я просто читал учебник по адресу http://hubpages.com/hub/Tips-to-solve-the-UnknownHostException-on-Android и решил протестировать на эмуляторе. Не удивительно, что мое приложение не работало так, как будто это не было на моем реальном устройстве. Но, смущающе, я попытался использовать браузер эмулятора для доступа к веб-сайту, чтобы проверить мой файл android.permission.INTERNET - он не работал. – sisko

1

401 означает, что вам необходимо пройти проверку подлинности: использует ли сайт учетную запись на основе форм или базовую аутентификацию HTTP? Если используется обычная проверка подлинности, вам необходимо установить соответствующий заголовок Авторизация. См. Пример в http://hc.apache.org/httpcomponents-client-ga/httpclient/examples/org/apache/http/examples/client/ClientAuthentication.java для выполнения Basic Auth.

Смежные вопросы