2016-09-30 2 views
-1

Я хочу, чтобы вызвать ссылку с помощью кнопки для включения и выключения привелоназывают ссылку с Android приложение

поворачивает мой светодиодом:

http://10.0.0.3/light4on

поворачивает мой увел:

http://10.0.0.3/light4off

public void onClick(View v){ 

     String link = "http://10.0.0.3/light4off"; 
     try { 
      URL u = new URL(link); 
      HttpURLConnection http = (HttpURLConnection)u.openConnection(); 
      // http.connect(); 
      ausgabe.setText("working"); 

     } catch (Exception e) 
     { 
      ausgabe.setText("not working"); 
     } 

    } 

, но это не правда работает ...

Я также добавил этот манифест:

+0

Это похоже на NAT IP, ваш компьютер может иметь к нему доступ и работать при использовании браузера. Убедитесь, что у вашего андроида есть доступ к нему, попробуйте открыть его с помощью браузера на Android-телефоне и посмотреть, работает ли он. –

+0

он работает с обозревателем Android –

ответ

0

Вы можете вызвать любой API, который вы звоните, как URL в андроид приложения с помощью HttpUrlConnection или OkHttp

Прежде всего, запросить разрешение к сети доступа, добавьте следующие строки в манифесте:

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

После AsyncTask будет использоваться для вызова HTTP GET метод ИПН в отдельной теме:

class RequestTask extends AsyncTask<String, String, String>{ 
    String server_response; 

    @Override 
    protected String doInBackground(String... uri) { 
    URL url; 
     HttpURLConnection urlConnection = null; 

     try { 
      url = new URL(uri[0]); 
      urlConnection = (HttpURLConnection) url.openConnection(); 

      int responseCode = urlConnection.getResponseCode(); 

      if(responseCode == HttpURLConnection.HTTP_OK){ 
       server_response = readStream(urlConnection.getInputStream()); 
       Log.v("CatalogClient", server_response); 
      } 

     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

     return null; 
    } 

    @Override 
    protected void onPostExecute(String result) { 
     super.onPostExecute(result); 
     //Do anything with response.. 
    } 
} 


// Converting InputStream to String 

private String readStream(InputStream in) { 
     BufferedReader reader = null; 
     StringBuffer response = new StringBuffer(); 
     try { 
      reader = new BufferedReader(new InputStreamReader(in)); 
      String line = ""; 
      while ((line = reader.readLine()) != null) { 
       response.append(line); 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } finally { 
      if (reader != null) { 
       try { 
        reader.close(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
     } 
     return response.toString(); 
    } 


To call this class you have to write: new RequestTask().execute("http://10.0.0.3/light4on"); 
+0

Спасибо! @ url = новый URL (строки [0]); AS отмечает строки как ошибку? извините за глупый вопрос .. Я новичок в java –

+0

Обновлено. Теперь вы можете проверить – Anjali

+0

спасибо! , но его не работает ... logcat говорит: I/System.out: (HTTPLog) -Static: isSBSettingEnabled false –

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