2016-05-30 107 views
0

上午使用改進爲我與服務器的連接,我的應用程序有登錄頁面和註銷頁面在登錄期間我從文本框中獲取值並使用POST請求發送到服務器它工作正常,改裝錯誤:Android中的500內部服務器錯誤

public void LoginUser(View v) 

{RestAdapter adapter = new RestAdapter.Builder()  
      .setEndpoint(ROOT_URL) 
      .build(); 

    WashAPI api = adapter.create(WashAPI.class); 

    api.LoginUser(



      Email.getText().toString(), 
      Password.getText().toString(), 

      //Creating an anonymous callback 
      new Callback<Response>() { 
       @Override 
       public void success(Response result, Response response) { 
        //On success we will read the server's output using bufferedreader 
        //Creating a bufferedreader object 
        BufferedReader reader = null; 

        //An string to store output from the server 
        String output = ""; 

        try { 
         //Initializing buffered reader 
         reader = new BufferedReader(new InputStreamReader(result.getBody().in())); 

         //Reading the output in the string 
         output = reader.readLine(); 
        } catch (IOException e) { 
         e.printStackTrace(); 
        } 

接口簽到

public interface WashAPI { 
@FormUrlEncoded 
@POST("/xxx/yyy/signin") 
public void LoginUser(
     @Field("email") String email, 
     @Field("password") String password, 

     Callback<Response> callback); 

} 

這工作好

我的服務器API登錄後返回我一個道理,在signout的時候,我需要發送令牌,所以我的會話得到了體驗。

爲signout

代碼
public void signout(View v) 
{ 
    Log.d("insidetoken",t); 
    RestAdapter adapter = new RestAdapter.Builder() 
      .setEndpoint(ROOT_URL) 
      .build(); 
    SignoutAPI api = adapter.create(SignoutAPI.class); 
      api.signout(t, 
        new Callback<Response>() { 
         @Override 
         public void success(Response result, Response response) { 

          BufferedReader reader = null; 
          String output = ""; 
          try { 
           reader = new BufferedReader(new InputStreamReader(result.getBody().in())); 
           output = reader.readLine(); 
          } catch (IOException e) { 
           e.printStackTrace(); 
          } 

接口signout

public interface SignoutAPI { 
@FormUrlEncoded 
@POST("/xxx/yyy/zzz/signout") 
public void signout(
     @Field("token") String token, 
     Callback<Response> callback); 

}

我的代碼是相同的兩個登入和SIGOUT

但簽到它的工作原理和signout它給了我RETROFIT錯誤:500內部服務器錯誤

但使用郵差它工作正常enter image description here

+0

什麼問題? –

+0

爲什麼在註銷操作期間發生內部服務器錯誤? – livemaker

+0

因爲在服務器上有錯誤 –

回答

0

500內部服務器錯誤意味着在服務器端的問題,您應該使用郵遞員來檢查它。

我該死的確定在web服務響應中會出現問題,而不是你的代碼在android端出現問題。

+1

有錯誤... – livemaker

+0

SERVER中的問題是,它需要TOKEN,但有沒有令牌 JWTException在JWTAuth.php行295:需要一個令牌 – livemaker

0

正如評論中所提到的那樣,您似乎正在登錄服務中執行某些操作,而這些操作並未在退出服務中完成。

要解決此問題,請確保在註銷服務時,您正在檢查名爲token的POST參數。

+0

我不能讓你@eric我需要檢查? – livemaker

+0

請參閱http://stackoverflow.com/questions/8100634/get-the-post-request-body-from-httpservletrequest –