sql >> Database >  >> RDS >> Mysql

Tekstveldwaarde naar PHP MySQL verzenden met xcode 8 (Objective-c) met of zonder klikactie?

Er zijn verschillende manieren om het te doen. Ten eerste is het belangrijk op te merken dat dataWithContentsOfURL is geen asynchroon verzoek. Dit betekent dat als je het gebruikt om grote gegevens over te zetten, de kans groot is dat je de app bevriest. Voor asynchrone verzoeken moet u de NSURLRequest gebruiken.

Dat gezegd hebbende, zijn er uitstekende API's om gegevens asynchroon te uploaden / downloaden. Een die zeer vaak wordt gebruikt en goed gedocumenteerd is, is AFNetworking . Dit is gecodeerd bovenop NSURLRequest.

In uw PHP kunt u bijvoorbeeld de velden uit een POST-statement als volgt ophalen:

<?php
  $username = $_POST["username"];
  $email = $_POST["email"];
?>

In uw app kunt u het PHP-script met een POST-verzoek in AFNetworking als volgt aanroepen:

NSString *username = @"username";
NSString *email = @"email";
NSMutableURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST" URLString:@"yourUrl" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
    NSLog(@"Sending POST request to server");

    [formData appendPartWithFormData:[username dataUsingEncoding:NSUTF8StringEncoding] name:@"username"];
    [formData appendPartWithFormData:[email dataUsingEncoding:NSUTF8StringEncoding] name:@"email"];

} error:nil];

AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];

NSURLSessionUploadTask *uploadTask = [manager uploadTaskWithStreamedRequest:request progress:^(NSProgress * _Nonnull uploadProgress) {

    dispatch_async(dispatch_get_main_queue(), ^{
        NSLog(@"SERVER UPLOAD FRACTION COMPLETED: %f", uploadProgress.fractionCompleted);
    });

} completionHandler:^(NSURLResponse * _Nonnull response, id  _Nullable responseObject, NSError * _Nullable error) {

    NSLog(@"responseObject %@", responseObject);
    NSString *responseString = [[[NSString alloc] initWithData:responseObject encoding:NSASCIIStringEncoding] mutableCopy];
    NSLog(@"The respose is: %@", responseString);

    if(error) {
        NSLog(@"Error: %@", error);

    } else {
        NSLog(@"The response is: %@", responseString);
        // Do something with the response
    }
}];
[uploadTask resume];


  1. Asynchroon wachten terwijl de C#-functie wordt uitgevoerd

  2. CodeIgniter:hoe de WHERE-clausule en OR-clausule te gebruiken?

  3. Gegevens uit de database exporteren in php, en het bestandsformaat voor Excel-export moet zijn als Windows 97-2003-werkmap

  4. PL/SQL-gateway in R11i