2014-01-31 4 views
1

Я строй системы регистрации для мобильных приложений, и необходимо отправить имя пользователя и пароль с помощью POST метода /GET в PHP проект.Отправить параметр для PHP, и ждать ответ

Ну я прочитал некоторые учебники в Интернете и увидел, что большинство учит, как сделать это, но мне нужно посылая почту, и получить значения, которые создаются с помощью PHP, а именно:

  • Мы отправляем логин и пароль для PHP
  • Если логин неправильный, PHP показывает messenger неправильного входа и пароля.
  • Если вы правы, это показывает другое сообщение на экране

И вот что я хочу сделать, это за отправку параметра, я хочу получить ответ из файла PHP, то возможно в Ios?

ответ

3

После кода описывают простой пример с POST методом (Как передать данные по POST методом)

Вы можете использовать следующий фрагмент кода, как описано in this article:.

Здесь я просто описать как использовать метод POST.

1. Установить строку с указанием фактического имени пользователя и пароля.

NSString *post = [NSString stringWithFormat:@"&Username=%@&Password=%@",@"username",@"password"]; 

2. Encode пост строку с помощью NSASCIIStringEncoding, а также после строки вам необходимо отправить в формате NSData.

NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 

Необходимо отправить фактическую длину ваших данных. Вычислите длину строки сообщения.

NSString *postLength = [NSString stringWithFormat:@"%d",[postData length]]; 

3. Создать URLRequest со всеми свойствами, как HTTP метод, HTTP поля заголовка с длиной почтовой строки. Создайте объект URLRequest и инициализируйте его.

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 

Укажите адрес, на который вы хотите отправить данные по этому запросу.

[request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://www.abcde.com/xyz/login.aspx"]]]; 

Теперь установите HTTP метод (POST или GET). Напишите эти строки так, как в ваш код.

[request setHTTPMethod:@"POST"]; 

HTTP заголовок поля с длиной данных сообщения.

[request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 

Также задано значение Закодированное значение для заголовка HTTP.

[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Current-Type"]; 

Установите HTTPBody в URLRequest с PostData.

[request setHTTPBody:postData]; 

4. Теперь создадим объект URLConnection. Инициализируйте его с помощью URLRequest.

NSURLConnection *conn = [[NSURLConnection alloc]initWithRequest:request delegate:self]; 

Это возвращает инициализированное соединение URL-адрес и начинает загружать данные для запроса URL. Вы можете проверить, действительно ли вы подключаетесь URL или не используете только if/else заявление, как показано ниже.

if(conn) 
{ 
NSLog(@”Connection Successful”) 
} 
else 
{ 
NSLog(@”Connection could not be made”); 
} 

5. Для получения данных из запроса HTTP, вы можете использовать методы делегата, предоставляемые URLConnection Class Reference. Методы делегатов приведены ниже.

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data 

выше метода используются для получения данных, которые мы получаем, используя сообщению метода.

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error 

Этот метод можно использовать для получения отчета об ошибке в случае подключение не к серверу.

- (void)connectionDidFinishLoading:(NSURLConnection *)connection 

Описанный выше метод используется для обработки данных после того, как соединение сделано успешно.

См такжеThisиThisдокументации для POST метода.

А вот лучший пример с исходным кодом HTTPPost Method.

2

Обрабатывать данные результатов с помощью методов делегата NSURLConnection

NSString *post = [NSString stringWithFormat:@"username=%@&password=%@",@"Raja",@"12345"]; 
    NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES]; 
    NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[post length]]; 

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://localhost/promos/index.php"]]; 


    [request setHTTPMethod:@"POST"]; 
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"]; 
    [request setHTTPBody:postData]; 

    NSURLConnection *theConnection = [NSURLConnection connectionWithRequest:request delegate:self]; 

    if(theConnection){ 
     // indicator.hidden = NO; 
     mutableData = [[NSMutableData alloc]init]; 
    } 

ваш PHP код

<?php 
    $username = $_POST['username']; 
    $password = $_POST['password']; 

$result=//check your condition 

    echo $result; 
?> 
3
//Create the request 

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"your script name.php"]]; 
// create the Method "GET" or "POST" 

[request setHTTPMethod:@"POST"]; 

//Pass The String to server 
NSString *userUpdate =[NSString stringWithFormat:@"artist_email=%@ ",your string Name,nil]; 

//Check The Value what we passed 
NSLog(@"the data Details is =%@", userUpdate); 

//Convert the String to Data 
NSData *data1 = [userUpdate dataUsingEncoding:NSUTF8StringEncoding]; 

//Apply the data to the body 
[request setHTTPBody:data1]; 

//Create the response and Error 

NSError *err; 
NSURLResponse *response; 

NSData *responseData = [NSURLConnection sendSynchronousRequest:request  returningResponse:&response error:&err]; 

NSString *resSrt = [[NSString alloc]initWithData:responseData encoding:NSASCIIStringEncoding]; 

//This is for Response 
NSLog(@"got response==%@", resSrt); 

if(resSrt) 
{ 
NSLog(@"got response"); 


} 
else 
{ 
NSLog(@"faield to connect"); 
} 
+0

если и получить ответ после этого u имеет сериализацию значения –

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