2016-05-12 2 views
-2

Я создал новый проект, в котором я должен хранить данные на моем сервере. но всякий раз, когда я отправляю данные, он сохраняет нулевое значение в моих полях таблицы. Я пробовал это много раз, но он не работает.Как отправить данные на веб-сервер с помощью Objective C?

Любая помощь будет принята с благодарностью.

код PHP скрипт

$name = $jsonObj['name']; 
$email = $jsonObj['email']; 
$phone = $jsonObj['phone']; 
$comment = $jsonObj['comment']; 

мой ViewController.h файл

#import <UIKit/UIKit.h> 
@interface ViewController : UIViewController 
{ 
NSMutableData*mutableData; 
} 
@property (strong, nonatomic) IBOutlet UITextField *txname; 
@property (strong, nonatomic) IBOutlet UITextField *txemail; 
@property (strong, nonatomic) IBOutlet UITextField *txcontect; 
@property (strong, nonatomic) IBOutlet UITextField *txcomment; 
- (IBAction)submit:(id)sender; 

@end 

мой ViewController.m файл

 - (IBAction)submit:(id)sender 
{ 
//Here YOUR URL 
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"my URL…..."]]; 




//create the Method "GET" or "POST" 
[request setHTTPMethod:@"POST"]; 

//Pass The String to server(YOU SHOULD GIVE YOUR PARAMETERS INSTEAD OF MY PARAMETERS) 
NSString *userUpdate =[NSString stringWithFormat:@"name=%@&email=%@&phone=%@& comment=%@&",_txname.text,_txemail.text,_txcontect.text,_txcomment.text,nil]; 

//Check The Value what we passed 
NSLog(@"the data Details is =%@", userUpdate); 

    //Convert the String to Data 
NSData *data1 = [userUpdate dataUsingEncoding:NSUTF8StringEncoding]; 

    //Apply the data to the body 
[request setHTTPBody:data1]; 

//Create the response and Error 
NSError *err; 
NSURLResponse *response; 

    NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err]; 

NSString *resSrt = [[NSString alloc]initWithData:responseData encoding:NSASCIIStringEncoding]; 

//This is for Response 
NSLog(@"got response==%@", resSrt); 
if(resSrt) 
{ 
    NSLog(@"got response"); 
else 
{ 
    NSLog(@"faield to connect"); 
} 
} 
+0

вы должны дать полный код PHP скрипта, а не 4 строки – Shubhank

+0

Вашей цель с кодом выглядит отлично. Проблема должна быть с сервера. вы получаете ответ? – Lion

ответ

1

вы не посылаете объект JSON. так что в вашем коде PHP попытаться получить значение, как это:

$name = $_POST['name']; 
$email = $_POST['email']; 
$phone = $_POST['phone']; 
$comment = $_POST['comment']; 
+0

Да, да. Что означает '$ jsonObj' в вашем коде, кстати? можете ли вы показать некоторые из кода перед этими строками? –

1
NSDictionary* mainJSON = [NSDictionary dictionaryWithObjectsAndKeys: 
          _txname.text,@"name", 
          _txemail.text,@"email", 
          _txcontect.text,@"phone", 
          _txcomment.text,@"comment", 
          nil]; 

NSError * err; 
NSData * jsonData = [NSJSONSerialization dataWithJSONObject:mainJSON options:NSJSONWritingPrettyPrinted error:&err]; 
NSString * prams = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 
NSString *[email protected]"Your URL here..."; 
prams = [prams stringByReplacingOccurrencesOfString:@"+" withString:@"%2B"]; 

NSURL *url = [NSURL URLWithString:urlString]; 
NSMutableURLRequest * urlRequest = [NSMutableURLRequest requestWithURL:url]; 
NSData *requestData = [prams dataUsingEncoding:NSUTF8StringEncoding]; 

if (prams.length>0) { 
    [urlRequest setHTTPMethod:@"POST"]; 
    [urlRequest setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
    [urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
    [urlRequest setValue:[NSString stringWithFormat:@"%lu", (unsigned long)[requestData length]] forHTTPHeaderField:@"Content-Length"]; 
    [urlRequest setHTTPBody: requestData]; 
} 

NSURLSessionDataTask * dataTask = [[NSURLSession sharedSession] dataTaskWithRequest:urlRequest completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { 
    //NSLog(@"data=%@",data); 

    if (data.length>0 && error==nil) { 
     NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL]; 
     NSLog(@"Dict=%@",dict); 


    } 
}]; 
[dataTask resume];