2011-09-25 2 views
1

Я пытаюсь войти на веб-сайт, которому требуется 3 параметра в команде post. Токен, usr_name и usr_password.http сообщение успешно зарегистрировалось?

Знак всегда имеет следующее значение «545616f1e29bc538843ec7aa908122b1e». Я получаю это значение, выполняя HttpGet на странице входа и сохраняю его как строку.

Если у меня есть логин по URL-адресу, то https://www.xxxxx.com/xxxx/restricted/form/formelement=0123?usr_name=myuser&usr_password=mypass&token=545616f1e29bc538843ec7aa908122b1e Логин успешно завершен.

Как мне собрать a.m ссылку и узнать впоследствии, что я успешно вошел в систему? Спасибо за советы и помощь.

Мой код:

try { 
      String webPage = "https://xxxxxxxx.com/xx/Authenticationserv"; 
      String name = username; // user input through editbox 
      String password1 = password; // user input through editbox 

      String authString = name + ":" + password1 + ":" + token + "=" + value; 
      System.out.println("auth string: " + authString); 
      byte[] authEncBytes = Base64.encodeBytesToBytes(authString.getBytes()); 
      String authStringEnc = new String(authEncBytes); 
      System.out.println("Base64 encoded auth string: " + authStringEnc); 

      URL url = new URL(webPage); 
      URLConnection urlConnection = url.openConnection(); 
      urlConnection.setRequestProperty("Authorization", "Basic " + authStringEnc); 
      InputStream is = urlConnection.getInputStream(); 
      InputStreamReader isr = new InputStreamReader(is); 

      int numCharsRead; 
      char[] charArray = new char[1024]; 
      StringBuffer sb1 = new StringBuffer(); 
      while ((numCharsRead = isr.read(charArray)) > 0) { 
       sb1.append(charArray, 0, numCharsRead); 
      } 
      String result = sb1.toString(); 

      System.out.println("/// BEGIN ///"); 
      System.out.println(result); 
      System.out.println("/// END ///"); 
     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 

ответ

0

На самом деле я думаю, что вам нужно использовать POST метод войти в вашем website.I была та же проблема несколько недель назад, и я сделал это:

HttpClient httpclient; 
    HttpPost httppost; 
    ArrayList<NameValuePair> postParameters; 
    httpclient = new DefaultHttpClient(); 
    httppost = new HttpPost("your login link"); 


    postParameters = new ArrayList<NameValuePair>(); 
    postParameters.add(new BasicNameValuePair("username_hash", "fcd86e8cc9fc7596f102de7b2b922e80c6e6fac9")); 
    postParameters.add(new BasicNameValuePair("password_hash", "b66936348bd0bd44fa44f5ca7dcceb909545e47f")); 

    httppost.setEntity(new UrlEncodedFormEntity(postParameters)); 

    HttpResponse response = httpclient.execute(httppost); 
    Log.w("Response ","Status line : "+ response.toString()); 

Итак, вы настраиваете свои параметры для сообщения с помощью ArrayList, и вы можете получить ответ с сервера, если вы вошли в систему через HttpResponse. И еще одно: я настраиваю имя пользователя и пароль в коде, потому что это просто как вы идете a.Если у вас есть какие-либо вопросы, не стесняйтесь спрашивать.

Надеюсь, это поможет!

+0

Hi Android-Droid, Благодарим за ответ, но если вы входите в систему с кодом и передаете неправильное имя пользователя, я все равно получаю ответ 200. Так что-то не так. PS: я добавил третий параметр к постпараметру. – Lars

+0

Извините, что это статус ответа, поэтому вы получаете результат 200. См. Мой отредактированный ответ. –

+0

Привет, Не стоит беспокоиться, но почему-то что-то прерывается в заголовках. через FireBug я могу видеть, что запрашиваемые заголовки: - Host \t access.xxxx.com - User-Agent \t Mozilla/5.0 (Windows NT 6.1; с.в.: 6.0.2) Gecko/20100101 Firefox/6.0.2 - Принять \t текст/html, application/xhtml + xml, application/xml; q = 0,9, */*; q = 0,8 - Accept-Language \t nl, en-us; q = 0,7, en; q = 0,3 - Accept-Encoding \t GZIP, выкачать - Accept-Charset \t ISO-8859-1, UTF-8, д = 0,7, *, д = 0,7 - Подключение \t поддержания активности - Referer \t HTTP: // WWW. xxxx.com/prive/mysession/login.htm Любые предложения? Я думаю, что приближаюсь. Thx снова за то, что помог мне. – Lars

Смежные вопросы