我正在开发一个与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);
}
}
}
答案 0 :(得分:0)
我认为您的问题没有直接的解决方案。 但是,一个简单的解决方法是在应用程序的共享首选项中添加服务器的ip / port。这意味着无论何时更改,您都不需要重建应用程序,只能修改应用程序设置。
答案 1 :(得分:0)
尝试其他概念,例如将代码放在服务器上,然后您就不需要在URL中使用引用代码的IP