2013-12-15 1 views
0

я не мог найти что-нибудь полезное о:Войти, чтобы веб-страницы с помощью IOS App

Как разместить логин-дата (имя пользователя и пароль) и логин на веб-странице?

Я знаю, что есть AFNetworking, но есть ли решение без него? Если нет, как мне управлять им с помощью AFN? Я не могу попасть в этот AFN-Stuff. (Да, я знаю, что я сосу)

Вот Войти код с сайта:

<div class="moduletable"> 
        <form action="/" method="post" id="form-login" > 
    <fieldset class="input"> 
<p id="form-login-username"> 
    <label for="modlgn_username">Benutzername</label> 
    <input id="modlgn_username" type="text" name="username" class="inputbox" size="18" /> 
</p> 
<p id="form-login-password"> 
    <label for="modlgn_passwd">Passwort</label><br /> 
    <input id="modlgn_passwd" type="password" name="password" class="inputbox" size="18" /> 
</p> 
    <p id="form-login-remember"> 
    <label for="modlgn_remember">Angemeldet bleiben</label> 
    <input id="modlgn_remember" type="checkbox" name="remember" class="inputbox" value="yes"/> 
</p> 
    <input type="submit" name="Submit" class="button" value="Anmelden" /> 
<input type="hidden" name="option" value="com_users" /> 
<input type="hidden" name="task" value="user.login" /> 
<input type="hidden" name="return" value="aW5kZXgucGhwP0l0ZW1pZD0yODk=" /> 
<input type="hidden" name="f8abbfe43b9acc4830bb59c5b35cd9ef" value="1" /> </fieldset> 
<!--<ul> 
    <li> 
     <a href="/component/users/?view=reset"> 
     Passwort vergessen?</a> 
    </li> 
    <li> 
     <a href="/component/users/?view=remind"> 
     Benutzername vergessen?</a> 
    </li> 
     </ul>!--> 
</form> 
    </div> 

и вот моя попытка с помощью mutableRequest

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://www.ohg-bensberg.info/component/users/?view=login"]]; 
[request setHTTPMethod:@"post"]; 
NSString *string = @"username=blubbblubb&password=blabla"; 
[request setHTTPBody:[string dataUsingEncoding:NSUTF8StringEncoding]]; 

NSError *error=nil; 
NSURLResponse *response=nil; 
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 

[webView loadRequest:request]; 

Для реального! СПАСИБО МНОГО, я определенно должен это получить.

+0

Помимо параметров, которые вы не добавили, что не так с вашим текущим решением? – Wain

+0

это не показывает мне, как вошел в систему – faxemaxe

ответ

1

Во-первых, вы не должны отправлять синхронные запросы. Это совершенно неприемлемо с точки зрения пользователей. Используйте его только для тестирования.

Во-вторых, вы копируете запрос, отправив его через NSURLConnectionи вид в Интернете. Либо вы загружаете результат в возвращаемое значение вашего соединения (оно имеет тип NSData, и вы игнорируете его); или вы просто вызываете веб-представление loadRequest (который является асинхронным).

В-третьих, вы должны указать поля данных hidden. По всей вероятности, ваш веб-сервер нуждается в них, чтобы дать правильный ответ.

+0

может уставить мой пример, как включить скрытые поля данных? – faxemaxe

+1

То же, что и другие поля: '... & option = com_users & task = user.login ...' и т. Д. Просто добавьте это в свою строку. – Mundi

+0

я изменить строку: 'NSString * ул = @ "Имя пользователя = BlaBla && пароль = реветь && вариант = com_users && задача = user.login && вернуться = aW5kZXgucGhwP0l0ZW1pZD0yODk = && f8abbfe43b9acc4830bb59c5b35cd9ef = 1";' теперь веб-страница дает мне ошибку, что моя сессия устарела и мне нужно to relog, thats успех до сих пор, страница распознает мой POST, но я хочу войти в систему. – faxemaxe