2016-05-19 3 views
0

Я не знаком с HttpUrlConnection на Android Studio. Я пытался кодировать, используя HttpClient в Eclipse, и он работает. HttpClient теперь устарел в Android Studio, поэтому я попытался изменить его с помощью HttpUrlConnection. Мой код в Android Studio, как это:HttpUrlConnection в Android без ошибок, но не работает

public String LedOff(View view) { 
    try { 
     URL url = new URL("http://192.168.4.1/LEDOff"); 
     HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 
     urlConnection.connect(); 
    } catch (MalformedURLException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

}

в Eclipse, это так:

public void LedOff (View view){ 

     String url = "http://192.168.4.1/LEDOff"; 

     HttpClient httpClient = new DefaultHttpClient(); 

     try { 
      httpClient.execute(new HttpGet(url)); 
     } catch (ClientProtocolException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
} 

Я не знаю, что это неправильно. пожалуйста, помогите мне, ребята. Благодарю.

+0

пожалуйста вставьте LogCat .. – prat

+0

Вы за прокси? –

+0

05-19 15: 27: 12.727 21143-21150/com.ganda.alex.http D/jdwp: handlePacket: cmd = 0x1, cmdSet = 0xC7, len = 0x14, id = 0x400067C7, flags = 0x0, dataLen = 0x9 05-19 15: 27: 12.727 21143-21150/com.ganda.alex.http D/jdwp: sendBufferedRequest: len = 0x34 05-19 15: 27: 13.228 21143-21150/com.ganda.alex.http D/jdwp: processIncoming мой логарифм точно так же, как и все – Alexxx

ответ

1

Вы должны передать запрос, позвонив по телефону getInputStream(), getResponseCode() или getResponseMessage(), чтобы ответ был возвращен и обработан.

Connect() метод просто создает соединение.

Проверить с:

Log.i("Response Code" , urlConnection .getResponseCode()); 

Посмотрите, что ответ вы получаете.

0

попробовать, как этот

URL url = new URL("http://192.168.4.1/LEDOff"); 
    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 
    urlConnection.setDoInput(true); 
    urlConnection.setDoOutput(true) 
    urlConnection.connect(); 
    if(urlConnection.getResponseCode()==200) 
    { 
    ... 
    } 
1

Убедитесь, что эти два разрешения в манифесте:

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

Редактировать
Добавлен код для LedOff() метод лечения успешный ответ как String ,

И попробовать это, согласно Android Docs:

public String LedOff(View view) { 
    try { 
     URL url = new URL("http://192.168.4.1/LEDOff"); 
     HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
     conn.setReadTimeout(10000 /* milliseconds */); 
     conn.setConnectTimeout(15000 /* milliseconds */); 
     conn.setRequestMethod("GET"); // Or any method you need 
     conn.setDoInput(true); 

     // Starts the query 
     conn.connect(); 
     int response = conn.getResponseCode(); 
     Log.d(DEBUG_TAG, "The response code is: " + response); 

     if ((response >= 200) && (response < 300)) { 
      // We are assuming here that whatever the response is, it can be parsed as a String 
      Log.d(DEBUG_TAG, "The response is: " + conn.getResponseMessage()); 
     } 
    } catch(Exception ex) { 
     // Handle any exceptions 
    } 
} 
+0

, пожалуйста, дайте мне пример ответа. Мне очень жаль, потому что я просто новичок здесь. это моя первая настройка http-соединений. – Alexxx

+0

Что именно вы ожидаете достичь, подключившись к «** http: //192.168.4.1/LEDOff**»? –

+0

Я отредактировал свой ответ и включил код для обработки успешного ответа как 'String'. –

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