2016-05-12 114 views
-2

我已經創建了一個新項目,使用它我必須將數據存儲在我的服務器數據庫表上。但每當我發送數據時,它都會在我的表字段中存儲空值。我嘗試了這麼多次,但沒有奏效。如何使用Objective C將數據發佈到Web服務器?

任何幫助,將不勝感激。

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

你的目標C代碼看起來不錯。問題應該來自服務器端。你有反應嗎? – 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]; 
相關問題