Вход в Android с использованием PHP и MySql Async Error

Мне нужна небольшая помощь в выяснении этого, попытка обернуть голову вокруг всего асинхронного процесса и сделать в фоновом режиме ()

Я получаю это сообщение об ошибке, и мне нужно немного помощи, чтобы заставить его работать.

10-20 14:50:55.826: D/request!(29163): starting
10-20 14:50:55.871: D/ProgressBar(29163): updateDrawableBounds: left = 0
10-20 14:50:55.871: D/ProgressBar(29163): updateDrawableBounds: top = 0
10-20 14:50:55.871: D/ProgressBar(29163): updateDrawableBounds: right = 96
10-20 14:50:55.871: D/ProgressBar(29163): updateDrawableBounds: bottom = 96
10-20 14:50:55.961: W/dalvikvm(29163): threadid=11: thread exiting with uncaught exception (group=0x41f57c08)
10-20 14:50:55.991: D/dalvikvm(29163): GC_FOR_ALLOC freed 231K, 8% free 10077K/10916K, paused 11ms, total 11ms
10-20 14:50:55.991: E/AndroidRuntime(29163): FATAL EXCEPTION: AsyncTask #1
10-20 14:50:55.991: E/AndroidRuntime(29163): Process: com.bobcatservice, PID: 29163
10-20 14:50:55.991: E/AndroidRuntime(29163): java.lang.RuntimeException: An error occured while executing doInBackground()
10-20 14:50:55.991: E/AndroidRuntime(29163):    at android.os.AsyncTask$3.done(AsyncTask.java:300)
10-20 14:50:55.991: E/AndroidRuntime(29163):    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
10-20 14:50:55.991: E/AndroidRuntime(29163):    at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
10-20 14:50:55.991: E/AndroidRuntime(29163):    at java.util.concurrent.FutureTask.run(FutureTask.java:242)
10-20 14:50:55.991: E/AndroidRuntime(29163):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
10-20 14:50:55.991: E/AndroidRuntime(29163):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
10-20 14:50:55.991: E/AndroidRuntime(29163):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
10-20 14:50:55.991: E/AndroidRuntime(29163):    at java.lang.Thread.run(Thread.java:841)
10-20 14:50:55.991: E/AndroidRuntime(29163): Caused by: java.lang.SecurityException: Permission denied (missing INTERNET permission?)
10-20 14:50:55.991: E/AndroidRuntime(29163):    at java.net.InetAddress.lookupHostByName(InetAddress.java:418)
10-20 14:50:55.991: E/AndroidRuntime(29163):    at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
10-20 14:50:55.991: E/AndroidRuntime(29163):    at java.net.InetAddress.getAllByName(InetAddress.java:214)
10-20 14:50:55.991: E/AndroidRuntime(29163):    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
10-20 14:50:55.991: E/AndroidRuntime(29163):    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
10-20 14:50:55.991: E/AndroidRuntime(29163):    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
10-20 14:50:55.991: E/AndroidRuntime(29163):    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
10-20 14:50:55.991: E/AndroidRuntime(29163):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:670)
10-20 14:50:55.991: E/AndroidRuntime(29163):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:509)
10-20 14:50:55.991: E/AndroidRuntime(29163):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
10-20 14:50:55.991: E/AndroidRuntime(29163):    at com.bobcatservice.JSONParser.makeHttpRequest(JSONParser.java:98)
10-20 14:50:55.991: E/AndroidRuntime(29163):    at com.bobcatservice.Login$AttemptLogin.doInBackground(Login.java:121)
10-20 14:50:55.991: E/AndroidRuntime(29163):    at com.bobcatservice.Login$AttemptLogin.doInBackground(Login.java:1)
10-20 14:50:55.991: E/AndroidRuntime(29163):    at android.os.AsyncTask$2.call(AsyncTask.java:288)
10-20 14:50:55.991: E/AndroidRuntime(29163):    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
10-20 14:50:55.991: E/AndroidRuntime(29163):    ... 4 more

А вот и исходный код

    //AsyncTask is a seperate thread than the thread that runs the GUI
//Any type of networking should be done with asynctask.
class AttemptLogin extends AsyncTask<String, String, String> {

/**
* Before starting background thread Show Progress Dialog
* */
boolean failure = false;

@Override
protected void onPreExecute() {
super.onPreExecute();
pDialog = new ProgressDialog(Login.this);
pDialog.setMessage("Attempting login...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(true);
pDialog.show();
}

@Override
protected String doInBackground(String... args) {
// TODO Auto-generated method stub
// Check for success tag
int success;
String username = user.getText().toString();
String password = pass.getText().toString();
try {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("username", username));
params.add(new BasicNameValuePair("password", password));

Log.d("request!", "starting");
// getting product details by making HTTP request
JSONObject json = jsonParser.makeHttpRequest(
LOGIN_URL, "POST", params);

// check your log for json response
Log.d("Login attempt", json.toString());

// json success tag
success = json.getInt(TAG_SUCCESS);
if (success == 1) {
Log.d("Login Successful!", json.toString());
Intent i = new Intent(Login.this, Welcome.class);
finish();
startActivity(i);
return json.getString(TAG_MESSAGE);
}else{
Log.d("Login Failure!", json.getString(TAG_MESSAGE));
return json.getString(TAG_MESSAGE);

}
} catch (JSONException e) {
e.printStackTrace();
}

return null;

}
/**
* After completing background task Dismiss the progress dialog
* **/
protected void onPostExecute(String file_url) {
// dismiss the dialog once product deleted
pDialog.dismiss();
if (file_url != null){
Toast.makeText(Login.this, file_url, Toast.LENGTH_LONG).show();
}

}

}

}

И вот мой класс JSONParser

    public class JSONParser {
static InputStream is = null;
static JSONObject jObj = null;
static String json = "";

// constructor
public JSONParser() {

}

public JSONObject getJSONFromUrl(final String url) {

// Making HTTP request
try {
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);

HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();

} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
json = sb.toString();
} catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString());
}

// try parse the string to a JSON object
//try {
//jObj = new JSONObject(json);
//} catch (JSONException e) {
//Log.e("JSON Parser", "Error parsing data " + e.toString());
// }

// return JSON String
return jObj;

}

// function get json from url
// by making HTTP POST or GET mehtod
public JSONObject makeHttpRequest(String url, String method,
List<NameValuePair> params) {

// Making HTTP request
try {

// check for request method
if(method == "POST"){
// request method is POST
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(params));

HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();

}else if(method == "GET"){
// request method is GET
DefaultHttpClient httpClient = new DefaultHttpClient();
String paramString = URLEncodedUtils.format(params, "utf-8");
url += "?" + paramString;
HttpGet httpGet = new HttpGet(url);

HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
}

} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

try {
BufferedReader reader = new BufferedReader(new InputStreamReader(
is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
json = sb.toString();
} catch (Exception e) {
Log.e("Buffer Error", "Error converting result " + e.toString());
}

// try parse the string to a JSON object
try {
jObj = new JSONObject(json);
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}

// return JSON String
return jObj;

}
}

Вот мой файл manfiest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.bobcatservice"android:versionCode="1"android:versionName="1.0" >

<uses-sdk
android:minSdkVersion="8"android:targetSdkVersion="19" />
<uses-permission android:name="android.persmisson.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<application
android:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" >
<activity
android:name="com.bobcatservice.Login"android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.bobcatservice.Welcome"android:label="@string/app_name" >
</activity>
</application>

0

Решение

Вы должны добавить INTERNET разрешение на ваш файл манифеста. Увидеть Вот.

1

Другие решения

Других решений пока нет …