2012-04-12 204 views
-1

我有這個php代碼。發送郵寄請求到服務器

<?php   
      $users = $this->Session->read("user"); 
      $varFName = $users['User']['first_name']; 
      $varLName = $users['User']['last_name']; 
      $message = "Hello, 
I would like to invite you to Clicksays! ".$varFName." ".$varLName; 
      echo $this->Form->create('User', array('id' => 'sendEmailRequest', 'style'=>'padding : 0px;', 'url' => array('controller' => 'Contacts', 'action' => 'addEmailRequest'))); 
      echo $this->Form->input('Email', array('id' => 'email', "size"=>"40")); 
      echo $this->Form->textarea("Message", array("type"=>"textarea", "id"=>"PreviewEmail", "style"=>"display:none;","rows"=>"5", "cols"=>"45", "value"=>$message)); 
      echo $this->Form->button('Preview and edit invitation Clickup', array("id" => "butInvite", "type"=>"button")); 
      echo $this->Form->button('Send invitation Clickup', array('id' => 'butSendInvitation',  'type'=>'submit')); 
      echo $this->Form->end(); ?> 

現在,它接受用戶的電子郵件和消息數據的陣列..

NSURL *URL = [NSURL URLWithString:@"myLink"]; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:6.0]; 
[request setHTTPMethod:@"POST"]; 
NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self]; 
    [connection start]; 

現在我敢肯定,我需要把數組作爲HTTP身體......但我不知道如何..我不是一個網絡人。並且對網絡編程和方法知之甚少。

誰能幫我告訴如何通過細節.. 它不無它的工作..和發佈錯誤輸入詳細的user..that代碼在PHP中存在太多

PS。你還可以轉發你在哪裏獲得iPhone編程技巧。我不熟悉web方法

+0

如果你想作爲一個數組發送你應該發送一個Json字符串。 U可以將數組轉換爲Json字符串使用NSJsonSerialisation類 – mChopsey 2012-04-12 14:25:09

+0

嘗試發佈答案..如果它可以幫助我..我也會接受以及+1對你..順便說一句,我需要與ios4.0兼容.. – Shubhank 2012-04-12 14:31:19

回答

0

試試這個

NSString *urlString = @"Your url"; 

    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease]; 
    [request setURL:[NSURL URLWithString:urlString]]; 
    [request setHTTPMethod:@"POST"]; 

    NSMutableData *body = [NSMutableData data]; 


    NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"]; 
    NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@", boundary]; 
    [request addValue:contentType forHTTPHeaderField:@"Content-Type"]; 




    [body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[NSData dataWithData:imageData]]; 
    [body appendData:[[NSString stringWithString:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 



    // Text parameter1 
    // NSString *param1 = @"parameter text"; 
    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"name\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithString:param1] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithString:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 



    // Another text parameter 
    // NSString *param2 = @"Parameter 2 text"; 
    [body appendData:[[NSString stringWithFormat:@"--%@\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"desc\"\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithString:param2] dataUsingEncoding:NSUTF8StringEncoding]]; 
    [body appendData:[[NSString stringWithString:@"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]]; 


    // close form 
    [body appendData:[[NSString stringWithFormat:@"--%@--\r\n", boundary] dataUsingEncoding:NSUTF8StringEncoding]]; 
    // set request body 
    [request setHTTPBody:body]; 

像上面的代碼ü可以使用HTTP POST方法發送的多重價值。