Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wysłać wartość pola tekstowego do PHP MySQL za pomocą xcode 8 (Objective-c) z działaniem kliknięcia lub bez?

Jest na to kilka sposobów. Po pierwsze, należy zauważyć, że dataWithContentsOfURL nie jest żądaniem asynchronicznym. Oznacza to, że jeśli użyjesz go do przesyłania dużych danych, istnieje duża szansa, że ​​zamrozisz aplikację. W przypadku żądań asynchronicznych należy użyć NSURLRequest.

To powiedziawszy, istnieją doskonałe API do asynchronicznego przesyłania/pobierania danych. Jednym, który jest bardzo często używany i dobrze udokumentowany, jest AFNetworking . Jest to zakodowane na górze NSURLRequest.

Na przykład w swoim PHP możesz pobrać pola z instrukcji POST w następujący sposób:

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

W swojej aplikacji możesz wywołać skrypt PHP z żądaniem POST w AFNetworking w następujący sposób:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Czy bardziej wydajne jest przekazywanie dużych pakietów parcelable lub przekazywanie identyfikatora i bazy danych zapytania?

  2. Tabela aktualizacji MySQL na podstawie innej wartości tabeli

  3. Jak stworzyć połączony serwer MySQL

  4. Jak sprawić, by Silverlight pobrał swoje dane z MySQL?

  5. ZMIEŃ znak nowej linii w MYSql nie działa