sql >> Databáze >  >> RDS >> Mysql

Odeslat hodnotu textového pole do PHP MySQL pomocí xcode 8 (Objective-c) s nebo bez akce kliknutí?

Existuje několik způsobů, jak to udělat. Nejprve je důležité poznamenat, že dataWithContentsOfURL není asynchronní požadavek. To znamená, že pokud jej používáte k přenosu velkých dat, existuje velká šance, že aplikaci zamrznete. Pro asynchronní požadavky byste měli použít NSURLRequest.

Přesto existuje vynikající API pro asynchronní nahrávání/stahování dat. Velmi často používaný a dobře zdokumentovaný je AFNetworking . Toto je zakódováno nad NSURLRequest.

Například ve vašem PHP můžete načíst pole z příkazu POST takto:

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

Ve své aplikaci můžete volat skript PHP pomocí požadavku POST v AFNetworking takto:

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. jak mohu počítat stav změněný/aktualizovaný podle kategorií za konkrétní měsíc

  2. Příkaz SQL pro výpis a zobrazení všech databází v MySQL a MariaDB

  3. Kolik sloupců v tabulce MySQL

  4. Oprava „ERROR 3942 (HY000):Každý řádek klauzule VALUES musí mít alespoň jeden sloupec“ při použití příkazu VALUES v MySQL