アプリにログインページがあり、サーバーがあります。タブを他のワイヤレス接続に接続するように設定してログインボタンをクリックすると、「ホストへのルートがありません」というエラーが出力され、クラッシュします。しかし、サーバーに接続すると、完全に正常に機能します。ログイン時に間違ったサーバーに接続するたびにプロンプトを表示したい。
これが私のコードです...しかし、これをどこに置くべきかわかりません..plsヘルプ。
AlertDialog.Builder builder = new AlertDialog.Builder(LoginPage.this);
builder.setTitle("Attention!");
builder.setMessage("Connection to Server failed.");
builder.setPositiveButton("Retry", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
new phpRequest().execute();
}
});
builder.setNegativeButton("Cancel", null);
AlertDialog dialog = builder.create();
dialog.show();
これが私のphpRequestです。
private class phpRequest extends AsyncTask<String, Integer, String>
{
@Override
protected String doInBackground(String... params)
{
String responseString = "";
HttpClient httpclient = new DefaultHttpClient();
HttpPost request = new HttpPost(myurl);
try
{
String studSt = etStudNo.getText().toString();
String passSt = etPassword.getText().toString();
List<NameValuePair> parameter = new ArrayList<NameValuePair>();
parameter.add(new BasicNameValuePair("student_id", studSt));
parameter.add(new BasicNameValuePair("password", passSt));
request.setEntity(new UrlEncodedFormEntity(parameter));
HttpResponse response = httpclient.execute(request);
StatusLine statusLine = response.getStatusLine();
if(statusLine.getStatusCode() == HttpStatus.SC_OK)
{
ByteArrayOutputStream out = new ByteArrayOutputStream();
response.getEntity().writeTo(out);
out.close();
responseString = out.toString();
}
else
{
response.getEntity().getContent().close();
throw new IOException(statusLine.getReasonPhrase());
}
}
catch (Exception ioe)
{
Log.e("Error", ioe.toString());
}
return responseString;
}
@Override
protected void onPostExecute(String result)
{
super.onPostExecute(result);
String c = result;
int check = Integer.parseInt(c);
if (check == 1)
{
Intent i = new Intent(LoginPage.this,HomePage.class);
startActivity(i);
globalVars globalVars = (globalVars)getApplicationContext();
String idnumber = etStudNo.getText().toString();
globalVars.setStudLoggedId(idnumber);
Toast.makeText(getBaseContext(), "Student No: "+etStudNo.getText().toString(),Toast.LENGTH_LONG).show();
}
else
{
etPassword.setText("");
Toast.makeText(getBaseContext(), "Login Failed", Toast.LENGTH_LONG).show();
}
}
}