2017-04-22 67 views
0

我目前還不熟悉android編程,但是我最近創建了一個使用slim庫的rest api,它需要一個GET請求並將它添加到數據庫中,但是我不知道如何在android應用中發送它。無法發送GET請求到Android中的網址?

這裏是我的代碼:

Button btn; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
btn = (Button) findViewById(R.id.button); 
btn.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     try 
     { 
     URLConnection myURLConnection=null; 
     URL myURL=null; 
     String mainUrl="http://107.170.31.137/StudentApp/v1/garden/name2/user2/pass2"; 
      myURL = new URL(mainUrl); 
      myURLConnection = myURL.openConnection(); 
      myURLConnection.connect(); 
     } 
     catch (IOException e) 
     { 
      Toast.makeText(getBaseContext(), "in catch", Toast.LENGTH_LONG).show(); 
     } 
    } 
}); 

我甚至增加了權限:

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

仍然是應用無法正常運行。難道我做錯了什麼?請幫忙。另外,我想每次更改GET參數到我從其他地方獲得的新變量,我該怎麼做?

+0

我的示例項目考慮使用的AsyncTask更好地處理URL連接的,而不是用它在主線程上,你可能會面臨的問題。更多細節在這裏:https://developer.android.com/reference/android/os/AsyncTask.html – Vikrant

+0

Android不會允許你在主UI線程中做網絡連接。 Plz使用異步任務或其他線程進行網絡連接。 –

+0

目前您的GET請求中沒有參數。沒有查詢字符串。 – greenapps

回答

0

對於網絡關係操作進行以下圖書館的使用(Asyntask)

  1. 改造(推薦)

  2. Okhttp

  3. 凌空

檢查Retrofit