웹 페이지에 로그인하여 로그인이 성공했지만 앱이 다운되는지 확인하려고합니다. 내 코드는 다음과 같습니다.앱이 작동을 멈추고 웹 페이지에 로그인하려고 시도합니다.
package com.shortey.logtoweb;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void login (View view) {
try {
final String LOGIN_LINK = "https://www.manodienynas.lt/";
final String MY_EMAIL = "********"; //here should be my username
final String MY_PW = "********"; //here should be my password
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(LOGIN_LINK);
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3);
nameValuePairs.add(new BasicNameValuePair("username", MY_EMAIL));
nameValuePairs.add(new BasicNameValuePair("password", MY_PW));
nameValuePairs.add(new BasicNameValuePair("submit_login", "Prisijungti"));
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpClient.execute(httpPost);
TextView TV1 = (TextView)findViewById(R.id.textView1);
if (response.getStatusLine().getStatusCode() < 400) {
TV1.setText("Success");
} else {
TV1.setText("Failed");
}
} catch (UnsupportedEncodingException e) {
} catch (ClientProtocolException e) {
} catch (IOException e) {
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
버튼을 눌러 login() 메소드를 호출합니다. 제 코드가 잘못되어 응용 프로그램이 다운되는 것을 수정하도록 도와주세요. 나는 예외를 제대로 처리하지 못했지만 내 응용 프로그램이 충돌하지는 않지만 어쩌면 문제를 찾는 데 도움이 될 것이라고 생각합니다. 내 경우에 그들을 어떻게 적절하게 다루는가? 미리 감사드립니다!
당신이 스택 추적을 [android.os.NetworkOnMainThreadException]의 – Yuvi
중복 가능성을 게시 할 수있는 (http://stackoverflow.com/questions/6343166/android-os-networkonmainthreadexception) – Selvin