다른 사람이이 문제를 찾을 수 있기를 바랍니다. 나는 서버 통신에 완전히 종사하고있는 앱을 가지고 있었다. 불행히도 필자는 Windows 8 CP로 이동할 때 어떻게 든 Eclipse 작업 영역을 잃어 버렸습니다. 저는 여전히 .apk 파일을 가지고 있고 Dex2jar와 jd-gui를 사용하여 많은 코드를 복구 할 수있었습니다. 나는 모든 것을 다시 작동 상태로 되돌려 놓았지만, 이것은. 나는 서버에 URL을 보내려고하고 문자열 응답을 되 찾으려고합니다. 코드는 다음과 같습니다.Android HTTP 클라이언트 문제
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
public class login extends Activity{
<code>
public void pushLogin(View paramView){
try{
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(loginFinal);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
errorTextView.setText(loginFinal);
//code gets here
String response = client.execute(request, responseHandler);
//does not get here
errorTextView.setText(response);
}
내 TextView에는 항상 loginFinal이라는 문자열이 포함되어있어 응답을 표시 할 수 없습니다. 이를 확인하기 위해 문자열 응답을 얻으려고 시도한 후 errorTextView.setText(loginFinal);
을 줄로 이동했습니다. 그 시점에서 실행되지 않았습니다. 나는 머리카락을 찢어 내고있어, 나는 그것이 단순한 것이라고 확신한다. 나는 인터넷 허가를 받았고, 나는이 사이트에서이 부분에 대한 나의 원래 코드를 발견했다. 나는 별도의 질문을 던졌다. 이 코드는 내가 알 수있는 한 동일합니다. 내가 생각할 수있는 유일한 사실은 내가 Froyo에서 Honeycomb로 빌드 타겟을 옮겼다는 것인데, 나는 정제에 집중하기로 결정했다.
가장 중요한 부분은 내가 누를 때 LogCat이 아무 것도하지 않고 pushLogin을 트리거한다는 것입니다. client.execute(request, responseHandler)
을 전혀 트리거하지 않는 것 같습니다.
client.execute가 예외를 throw하는지 확인하지 않는 이유는 무엇입니까? 연락하려는 서버가 실제로 켜져 있습니까? – dbryson
try {} 다음에 catch 블록에 무엇이 있습니까? client.execute 다음에 행을 실행하지 않는다고 말하면 예외가 발생한다고 가정해야합니다. 디버거를 밟았습니까? – Tim
나는 캐치 방법을 사용했다. 나는 아직도 이것에 대해 매우 새로운 것이지만, 나는 이것이 어떤 형태의 오류를 건져야한다는 인상 아래에있다. catch (예외 e) { Toast.makeText (this, e.getMessage(), Toast.LENGTH_LONG); ' 토스트 오류가 없습니다. 뭔가 잘못이다? –