3

Django サーバーに接続する Android クライアント アプリケーションを構築しています。ここでの問題は、サーバーにログインできないことです:(.何が問題なのか、助けてください:|これが私のloginFunction()です:

  1. DefaultHttpClient を作成します。

    DefaultHttpClient httpClientStatic = new DefaultHttpClient();
    
  2. サーバーからcrsfを取得する関数:

    public String getCsrfFromUrl(String url) {
        HttpGet httpGet = new HttpGet(url);
    
        HttpResponse httpResponse = httpClientStatic.execute(httpGet);
        HttpEntity httpEntity = httpResponse.getEntity();
        is = httpEntity.getContent();
        List<Cookie> cookies = httpClientStatic.getCookieStore().getCookies();
        if (cookies.isEmpty()) {
            Log.e("COOKIES GET ",  "Empty Cookies");
        } else {
            for (int i = 0; i < cookies.size(); i++) {
                Log.e("COOKIES GET ",  cookies.get(i).getName()+"--"+cookies.get(i).getValue());
            }
        }
        return cookies.get(0).getValue();
    }
    
  3. ユーザー名、パス、crsf をサーバーにポストする関数:

    public JSONObject getJSONFromUrl(String url, List<NameValuePair> params) {
    
        // Making HTTP GET request to get csrfmiddlewaretoken:
        try {
            HttpPost httpPost = new HttpPost(url);
            httpPost.setEntity(new UrlEncodedFormEntity(params));
            Log.e("JSON", "In login user 02.4");
            HttpResponse httpResponse = httpClientStatic.execute(httpPost);
            HttpEntity httpEntity = httpResponse.getEntity();
            is = httpEntity.getContent();
            .....
            //Next is read respone, and return json type
        }
    
  4. ログイン機能:

    public JSONObject loginUser(String username, String password){
        // Building Parameters
    
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("username", username));
        params.add(new BasicNameValuePair("password", password));
        csrfmiddlewaretoken = new JSONParser().getCsrfFromUrl(loginURL);
        params.add(new BasicNameValuePair("csrfmiddlewaretoken", csrfmiddlewaretoken));
        JSONObject json = jsonParser.getJSONFromUrl(loginURL, params);
        return json;
    }
    

それでも 401 エラーと 500 ステータス :| が返されます。

4

0 に答える 0