sql >> Database teknologi >  >> RDS >> Mysql

Sende tekstfeltværdi til PHP MySQL ved hjælp af xcode 8 (Objective-c) med eller uden klikhandling?

Der er flere måder at gøre det på. For det første er det vigtigt at bemærke, at dataWithContentsOfURL er ikke en asynkron anmodning. Det betyder, at hvis du bruger det til at overføre store data, er der en god chance for, at du fryser appen. For async-anmodninger skal du bruge NSURLRequest.

Når det er sagt, er der fremragende API til at uploade/downloade data asynkront. En som er meget hyppigt brugt og veldokumenteret er AFNetworking . Dette er kodet oven på NSURLRequest.

For eksempel kan du i din PHP hente felterne fra en POST-sætning som denne:

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

I din app kan du kalde PHP-scriptet med en POST-anmodning i AFNetworking som følger:

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. MySQL og JDBC med rewriteBatchedStatements=true

  2. MySQL:Finder gentagne navne i min brugertabel

  3. Hvordan fjerner man foranstillede nuller fra dag- og månedsværdier i Oracle, når man parser til streng ved hjælp af to_char-funktionen?

  4. Opret en sekvens med START MED fra forespørgsel