2014-03-28 18 views
0

我試圖用post方法登錄網站...我如何檢查我是否登錄了?如何檢查發佈方法,如果在android中登陸?

public void postData() { 
    HttpClient httpclient = new DefaultHttpClient(); 
    HttpPost httppost = new HttpPost("https://svuonline.org/isis/index.php"); 
try {if (android.os.Build.VERSION.SDK_INT > 9) { 
      StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build(); 
      StrictMode.setThreadPolicy(policy); 
     } 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(); 
     nameValuePairs.add(new BasicNameValuePair("user_name", user.getText().toString())); 
     nameValuePairs.add(new BasicNameValuePair("user_pass",password.getText().toString())); 
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 
     HttpResponse response = httpclient.execute(httppost); 
    } catch (ClientProtocolException e) { } 
catch (IOException e) { } 
catch (Exception e) { } 
} 
+0

此外,請查看[異步Http客戶端](http://loopj.com/android-async-http/)。我們一直在生產中使用它,並且效果非常好! – FMontano

回答

0

你快到了!您在HttpResponse響應中已經有了響應,您只需檢查呼叫的狀態代碼即可。

HttpResponse response = httpclient.execute(httppost); 
int responseCode = response.getStatusLine().getStatusCode(); 

responseCode應該等於HttpStatus.SC_OK如果一切正常。你也可以得到響應的主體:

ResponseHandler<String> mHandler = new BasicResponseHandler(); 
String body = mHandler.handleResponse(response); 

希望這有助於!

+0

我喜歡你的方式,但我嘗試像這樣: HttpResponse response = httpclient.execute(httppost); \t int responseCode = response.getStatusLine()。getStatusCode(); (this,responseCode +「」+ HttpStatus.SC_OK +「logged」,Toast.LENGTH_LONG).show();如果(responseCode == HttpStatus.SC_OK){ \t \t Toast.makeText \t}否則{ \t \t Toast.makeText(此,responseCode + 「 」+ HttpStatus.SC_OK +「 不記錄」,Toast.LENGTH_LONG).show(); \t} 但它總是給我登錄,即使沒有文字或錯誤或權利...總是給我記錄 – Omar

+0

難道是服務器響應與代碼200(確定)和一條消息說:「沒有記錄在「或什麼的,而不是用代碼400或401迴應? – FMontano

+0

即使我嘗試在Facebook上發佈:HttpPost httppost = new HttpPost(「https://www.facebook.com/login.php?login_attempt=1」); 它給了我200這意味着服務器響應正常...我需要一種方法來知道如果我登錄成功或不! – Omar

0

在這裏你可以找到一個I類編碼,讓您的服務器響應的字符串:Java : a WebService asking embeded in a AsyncTask

如何使用,提供,只是

WebServiceAsyncTask.POST 

,並指定替換

WebServiceAsyncTask.GET 

你的參數。

然後你必須檢查服務器的響應。


看看paresh-mayani的評論,圖書館的聲音真棒。