2016-11-02 7 views
0

私のアプリを通してウェブサイトにログインしようとしています。 私はvolleyライブラリを使用しています。私はデータをどのように送信すればよいのか、私が得る返答は正確に何かを把握することができません。どうすれば私のアンドロイドアプリケーションを使ってWebサービスにログインできますか?

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

です。

ログインは、通常、アプリケーション本体の資格情報を含む投稿要求です。 資格情報が本体ではなくパラメータである場合、GETまたはPOST要求のいずれかになります。

HTTPメソッドの型を特定し、どこにparamsを配置すれば、そのメソッドに対するVolley要求を作成し、必要に応じてgetParams()メソッドまたはgetBody()メソッドをオーバーライドできます。

+0

私はPOSTMANで応答をチェックしました。フィールドとしてユーザー名とパスワードを持つhtmlコードを表示しています。私はGETメソッドを使用していますが、何らかの理由で何の応答も得られません。私も私のコードを投稿してくださいそれを確認してください。ありがとう。 – choi

+0

リクエストを送信しているURLがAPI URLであることを確認してください。 –

+0

私はあなたがそれを確認できるなら、私は本当にそれを感謝するので、私の質問のURLを言及している。私はちょっとここにこだわっています。 – choi

関連する問題