Этот мой код:
#import "MainClass.h"
@implementation MainClass
- (IBAction)actionButton:(id)sender {
NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:[NSURL
URLWithString:@"https://login.dnevnik.ru/auth"]
cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:15.0];
request.HTTPMethod = @"POST";
NSString *username = _loginLogin.text;
NSString *password= _passwordLogin.text;
GlobalUserName = username;
GlobalPassword = password;
/*NSUserDefaults *loginData = [NSUserDefaults standardUserDefaults];
NSString *username1 = [loginData objectForKey:@"username"] ;
NSString *password1 = [loginData objectForKey:@"password"];*/
NSString * param = [NSString stringWithFormat:@"&username=%@&password=%@", username, password];
request.HTTPBody = [param dataUsingEncoding:NSUTF8StringEncoding];
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
if (connection) {
_otvet.text = @"Connection setup";
NSLog(@"ama ama");
}
else
{
_otvet.text=@"Problem with connection";
NSLog(@"ama ama faza");
}
}
- (void) connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
[receivedData setLength:0];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[receivedData appendData:data];
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
UIAlertView *errorAlert = [[UIAlertView alloc]
initWithTitle:@"Ошибка" message:@"Problem with intrnet" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[errorAlert show];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSString * data = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding];
if ([data isEqual: @"OK"]) {
_otvet.text = @"Yeah";
NSLog(@"Yeah");
}
else
{
NSLog(@"Error %@,%@",GlobalUserName,GlobalPassword);
}
}
Показать сообщение, что NSLog(@"Error %@,%@",GlobalUserName,GlobalPassword)
потому что метод isEqual говорит, что мои данные не совпадают. Что я должен делать? И я не уверен, что отправка правильного входа в систему и пароль. Скажите мне, как определить, куда (куда) отправить данные, у меня нет сайта! Сайт www.dnevnik.ru !!
Вам нужно правильно настроить строку параметров.
Здесь в вашем коде
NSString * param = [NSString stringWithFormat:@"&username=%@&password=%@", username, password];
request.HTTPBody = [param dataUsingEncoding:NSUTF8StringEncoding];
Похоже, вы хотите использовать application/x-www-form-urlencoded
типа контента application/x-www-form-urlencoded
. Однако строка параметров начинается с "&" - и это определенно ошибка.
При использовании таких параметров, как application/x-www-form-urlencoded
типа контента application/x-www-form-urlencoded
, я бы предложил создать ваши параметры как (unencoded) пары ключей/значений NSString, создать NSDictionary
и использовать следующий вспомогательный метод, описанный в ответе здесь (Метод API POST не сохраняет данные на сервере sql), который создает правильно закодированную строку параметров, которую вы можете добавить в тело.
Не забудьте установить заголовок "Content-Type" в application/x-www-form-urlencoded
.
NSString * data
с именем: «data».