2016-11-02 3 views
0

내 앱을 통해 웹 사이트에 로그인하려고합니다. 발리 라이브러리를 사용 중입니다. 나는 데이터를 어떻게 보내야하는지 정확히 알 수는 없지만 내가 얻을 응답은 정확히 무엇인가?내 안드로이드 앱을 사용하여 웹 서비스에 로그인하는 방법은 무엇입니까?

의 URL 당신은 API URL을 공격하고 응답을 볼 수 POSTMAN을 사용할 수 있습니다 http://saptrishiherbal.com/home/login

public class MainActivity extends AppCompatActivity { 

    private static String TAG = MainActivity.class.getSimpleName(); 
    private Button login; 

    private ProgressDialog pDialog; 

    private EditText username; 
    private EditText password; 

    String url = "http://www.saptrishiherbal.com/home/login"; 
    String Username; 
    String Password; 

    public static final String KEY_USERNAME = "txtusername"; 
    public static final String KEY_PASSWORD = "txtPassword"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.login); 

     username = (EditText) findViewById(R.id.editText5); 
     password = (EditText) findViewById(R.id.editText6); 

     Username = username.getText().toString().trim(); 
     Password = password.getText().toString().trim(); 

     pDialog = new ProgressDialog(this); 
     pDialog.setMessage("Please wait..."); 
     pDialog.setCancelable(false); 

     login = (Button) findViewById(R.id.login); 

     login.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Loginnow(Username, Password); 
      } 
     });  
    } 

    public void Loginnow(final String username1, final String password1) { 

     final HashMap<String, String> params = new HashMap<String, String>(); 
     params.put(KEY_USERNAME, username1); 
     params.put(KEY_PASSWORD, password1); 

     StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new String(params), new Response.Listener<String>() { 
      @Override 
      public void onResponse(String response) { 

       Intent intent = new Intent(getBaseContext(), Home.class); 
       startActivity(intent);  
      } 
     }, 

       new Response.ErrorListener() { 
        @Override 
        public void onErrorResponse(VolleyError error) { 
         Toast.makeText(MainActivity.this, error.toString(), Toast.LENGTH_LONG).show(); 
        } 
       }) 

     /* { 
      protected Map<String, String> getParams() throws AuthFailureError { 
       Map<String, String> params = new HashMap<String, String>(); 
       params.put(KEY_USERNAME, username1); 
       params.put(KEY_PASSWORD, password1); 

       return params;  
      } 

     };*/ 

     AppController.getInstance().addToRequestQueue(stringRequest);  
     showpDialog();  
    } 

    private void showpDialog() { 
     if (!pDialog.isShowing()) 
      pDialog.show(); 
    }  
} 
+0

당신이 말했듯이 응답에서 HTML 코드를 얻는다면 문제는 백엔드 측에서 발생합니다 ... 먼저 변경 한 다음 적절한 응답을 받는지 확인하십시오. – Bhavnik

+0

알맞은 로그인 페이지이며 올바른 인증 정보를 입력하면 다음 페이지로 연결됩니다. 일반적으로이 경우 서버의 응답은 무엇입니까? – choi

+0

http://pastebin.com/exhSQg7U와 같은 서버의 json 응답이어야합니다. – Bhavnik

답변

0

입니다.

로그인은 대개 응용 프로그램 본문에 자격 증명이있는 게시물 요청입니다. 자격 증명이 본문이 아닌 params에 있으면 GET 또는 POST 요청 일 수 있습니다.

일단 HTTP 메소드 유형을 파악하고 params를 배치해야하는 경우 해당 메소드에 대한 발리 요청을 작성하고 필요에 따라 getParams() 또는 getBody() 메소드를 대체 할 수 있습니다.

+0

POSTMAN에서 응답을 확인했습니다. 필드로 사용자 이름과 암호가 포함 된 html 코드를 보여줍니다. 나는 GET 방법을 사용하고 있지만 어떤 이유로 나는 어떤 응답도 얻지 못하고있다. 나는 또한 내 코드를 게시 해주십시오. 감사. – choi

+0

요청을 보내려는 URL이 API URL인지 확인하십시오. –

+0

내 질문에 url을 언급 했으므로 확인할 수 있으면 정말 감사하겠습니다. 나는 여기 붙어있다. – choi

관련 문제