2016-08-02 13 views
-1

Ich versuche, neue Daten zu einem ws zu schreiben, aber im Fehler Geting jedes Mal ichPOSTING DATEN AUF EINEN WS

benötigen einen Benutzernamen und ein Passwort

1-Pass jedes Mal

2-Code der Daten mit AES256 mit dem API KEY

Code:

- (IBAction)AddTicket:(id)sender { 


     [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; 

    NSURL *URL = [[NSURL alloc] initWithString:@"http://dev.enano-tech.com/api/Ticket"]; 

    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"1",@"id",@"1",@"idProject",@"1",@"idTicketType",@"nameo",@"name",@"nameo",@"description", @"1",@"idStatus",@"2016-06-23 15:20:49",@"creationDateTime", nil]; 

    NSData *dataToPost = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:nil]; 
    NSData *final =[dataToPost AES256EncryptWithKey:@"02b6e206868660a0d59d2e51a11fdcd6"]; 
    // 
    NSLog(@"postData1e == %@",final); 
    NSLog(@"final %@",dataToPost); 

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL]; 
    [request setHTTPMethod:@"POST"]; 

    [request addValue:@"CURLAUTH_BASIC" forHTTPHeaderField:@"CURLOPT_HTTPAUTH"]; 


    [request addValue:@"Basic YWRtaW46YWRtaW5hZG1pbg==" forHTTPHeaderField:@"authorization"]; 

    [request addValue:@"admin:adminadmin" forHTTPHeaderField:@"CURLOPT_USERPWD"]; 

    [request addValue:@"true" forHTTPHeaderField:@"CURLOPT_RETURNTRANSFER"]; 

    [request addValue:@"false" forHTTPHeaderField:@"CURLOPT_SSL_VERIFYPEER"]; 

    [request addValue:@"POST" forHTTPHeaderField:@"CURLOPT_CUSTOMREQUES"]; 

    [request addValue:@"true" forHTTPHeaderField:@"CURLOPT_POST"]; 

    [request addValue:@"false" forHTTPHeaderField:@"CURLOPT_POSTFIELDS"]; 

    [request setHTTPBody:final]; 

    NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; 
    NSURLSession *session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:nil]; 

    NSURLSessionDataTask *postDataTask = [session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 

     NSString *result = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding]; 
     NSString *str = [[NSString alloc]initWithData:final encoding:NSUTF8StringEncoding]; 

     NSLog(@"data %@",data); 
     NSLog(@"respoce %@",response); 
     NSLog(@"result == %@",result); 
    }]; 

    [postDataTask resume]; 
} 

Antwort:

2016-08-02 15: 06: 47.768 Projektor [3936: 1619429] result == {"error": "ungültige API-Abfrage", "message": "'data' ist für Methode POST nicht korrekt codiert. Antrag auf korrekten API KEY "}

dies ist die Dokumentation von api:

enter image description here

+0

Meine Vermutung, ist, dass der Wert, den Sie buchen müssen, wie '{" Daten "aussehen könnte:" myAESENCRYPTEDData "}' – Larme

+1

Sie fehlen die Schlüssel, die ist definiert in POST-Methode auf Back-End –

+0

Ich füge alle Schlüssel jetzt mit diesem Fehler 2016-08-02 11: 30: 18.220 Projektor [3175: 846154] result == {"error": "ungültige API-Abfrage", "message": "'data' ist für Methode POST nicht korrekt codiert. Anfrage nach dem richtigen API KEY "} –

Antwort

0

Ihr Webserver fehlt‚ Daten‘von der Website, es zu beheben, werden Sie das Feld hinzufügen müssen zu Ihrem Formular oder finden Sie den richtigen Feldnamen (Groß-/Kleinschreibung beachten)