能够在Android应用程序中更新IP地址

时间:2016-07-03 16:30:55

标签: android json rest

我正在开发一个与Web应用程序对话的Android应用程序,我在本地运行Rest服务器 但如果我的服务器IP更改或端口更改我必须构建应用程序 是否有任何解决方案使自己的IP地址更新? 这是我接收我的网络服务的代码

public class TableauDeBordFragment extends Fragment {

    public static final String SERVEL_URL = "http://192.168.2.120:8082/access-control-web/rest/roles/attendance";

    List<Employe> employes;
    ListView tableauDeBordListview;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

       employes = new ArrayList<Employe>();
        View view = inflater.inflate(R.layout.fragment_tableau_de_bord, container, false);
        tableauDeBordListview = (ListView) view.findViewById(R.id.tableaudebordlist);
        DownloadJSON downloadJSON = new DownloadJSON();
        downloadJSON.execute();
        return view;
    }

    public class DownloadJSON extends AsyncTask<Void, Void, Void> {

        @Override
        protected Void doInBackground(Void... params) {
            try {
                URL theURL = new URL(SERVEL_URL);
                BufferedReader reader = new BufferedReader(new InputStreamReader(theURL.openConnection().getInputStream(), "UTF-8"));

                String jsonStr =  reader.readLine();
                JSONArray jsonArray = new JSONArray(jsonStr);
                for (int i=0;i<jsonArray.length();i++)
                {
                    JSONObject jsonAttendanceItem = jsonArray.getJSONObject(i);
                    JSONObject jsonEmployeeItem = jsonAttendanceItem.getJSONObject("employee");
                    Employe employe = new Employe();
                    employe.setFirstName(jsonEmployeeItem.getString("firstName"));
                    employe.setLastName(jsonEmployeeItem.getString("lastName"));
                    employe.setPhoneNumber(jsonEmployeeItem.getString("phoneNumber"));
                    employes.add(employe);
                }
                 } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } catch (JSONException e) {
                e.printStackTrace();
            }

            return null;
        }

        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);


            ArrayAdapter<Employe> adapter = new TableDeBordCustum(getActivity(), employes);
            tableauDeBordListview.setAdapter(adapter);

        }
    }
}

2 个答案:

答案 0 :(得分:0)

我认为您的问题没有直接的解决方案。 但是,一个简单的解决方法是在应用程序的共享首选项中添加服务器的ip / port。这意味着无论何时更改,您都不需要重建应用程序,只能修改应用程序设置。

答案 1 :(得分:0)

尝试其他概念,例如将代码放在服务器上,然后您就不需要在URL中使用引用代码的IP