2016-04-28 10 views
0

私はiOSの新機能です。私はpostメソッドを使ってPHPにデータを送信しようとしています。 PHPでは$_POST['data']のようなデータは取れませんが、$_GET['data']が必要です。私のiOSコードは以下の通りです。IOSの送信ポストメソッドのデータは、getメソッドとしてPHPでアクセスできます

NSString *strURL = [NSString stringWithFormat:@"http://example.com/app_respond_to_job?emp_id=%@&job_code=%@&status=Worker-Accepted&comment=%@",SaveID2,txtJobcode1,alertTextField.text]; 

NSURL *apiURL = [NSURL URLWithString:strURL]; 
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:apiURL]; 

[urlRequest setHTTPMethod:@"POST"]; 

NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self]; 

_receivedData = [[NSMutableData alloc] init]; 

[connection start]; 
NSLog(@"URL---%@",strURL); 

なぜ誰かが説明することができます、それは非常に便利です。

答えて

3

あなたはURL
私が思う にクエリ文字列を介してデータを送信するためhttps://www.dropbox.com/s/tggf5rru7l3n53m/AFNetworking.zip?dl=0

そして、あなたのプロジェクトにインポートファイルには#importで「AFHTTPRequestOperationManager.h」

AFHTTPRequestOperationManager *manager = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:@"Your Url"]]; 
    NSDictionary *parameters = @{@"emp_id":SaveID2,@"job_code":txtJobcode1.text,@"status":alertTextField.text}; 

    AFHTTPRequestOperation *op = [manager POST:@"rest.of.url" parameters:parameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) { 

    } success:^(AFHTTPRequestOperation *operation, id responseObject) { 


     NSLog(@"Success: %@ ***** %@", operation.responseString, responseObject); 
     manager.responseSerializer = [AFHTTPResponseSerializer serializer]; 
     [responseObject valueForKey: @"data"]; 



    } failure:^(AFHTTPRequestOperation *operation, NSError *error) { 

     NSLog(@"Error: %@ ***** %@", operation.responseString, error); 
    }]; 
    [op start]; 
0

を定義 このファイルをダウンロードしてください。要求の本文にデータを渡そうとするとうまくいくでしょう:[urlRequest setHTTPBody:...]

0

POSTパラメータはリクエストボディから来ています。 URL文字列をロムします。 application/x-www-form-urlencoded へのContent-Typeを設定するために、コールsetValue:forHTTPHeaderField:

  • 身体データとして(サンセリフIIRC、マークを問う)要求に

    • コールsetHTTPBodyとURLエンコードされた文字列を提供します。あなたはする必要があります
    • [connection start]へのコールを削除するか、initWithRequest:delegate:startImmediately:を使用して、接続を2回開始しないでください。

    最後の1つは重要です。接続を2回起動しようとすると、奇妙な結果が得られます。 :-)