2012-11-25 2 views
0

나는이 코드를 사용하여 PHP 스크립트에 매개 변수를 보냅니다.SSL 및 POST를 사용하여 PHP 스크립트와 대화하기

NSString *myRequestString = [NSString stringWithFormat:@"name=%@&phone=%@&address=%@", name, phone, address]; 

    // encode the URL with % codes 
    NSString *escapedString = (NSString *)CFBridgingRelease 
     (CFURLCreateStringByAddingPercentEscapes(NULL, 
               (__bridge CFStringRef) myRequestString, 
               NULL, 
               (CFStringRef)@"!*'();:@&=+$,/?%#[]", 
               kCFStringEncodingUTF8)); 

    NSData *myRequestData = [NSData dataWithBytes:[escapedString UTF8String] 
              length:[escapedString length]]; 
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] 
            initWithURL:[NSURL URLWithString: @"https://myserver.com/myScript.php"]]; 
    [request setHTTPMethod:@"POST"]; 
    [request setValue:@"application/x-www-form-urlencoded; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 
    [request setHTTPBody: myRequestData]; 

    NSOperationQueue *queue = [[NSOperationQueue alloc] init]; 

    [NSURLConnection sendAsynchronousRequest:request 
             queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) 
    { 
     if ([data length] > 0 && error == nil) { 
      NSString *content = [NSString stringWithUTF8String:[data bytes]]; 
      NSLog(@"responseData: %@", content); 
     } 
     else if ([data length] == 0 && error == nil) 
      NSLog(@"empty"); 
     else 
      NSLog(@"error"); 
    }]; 
: 이론적으로, 스크립트는이 내가 가진 아이폰 스크립트입니다

13244 
23123 
23455 
... etc. 

처럼, 출력은 숫자 같은 것입니다

header('Content-Type: text/plain'); 

for ($i = 0; $i < $number; $i++) { 

    echo($arrayNumbers[$i] . "\n"); 
} 

같은 줄에 하나를 TXT 출력을 반환해야

결과는 항상 비어 있습니다. 서버에서 아무 것도 다운로드되지 않습니다.

확인해야 할 사항은 무엇입니까? 감사.

+0

PHP 스크립트가 응답을받은 것을 확인 했습니까? 위의 php에 전자 메일 스크립트를 추가하고 ios 코드에 도달했는지 확인하십시오. – MyStream

+0

iphon 스크립트에서 데이터를 받고 있는지 확인하려면'var_dump ($ _ POST)'를 시도하십시오 – GBD

+0

좋은 생각입니다. 나는 지금 그것을했고 스크립트는 도달했지만 모든 게시 된 변수는 PHP 스크립트 내에서 비어 있습니다 ... – SpaceDog

답변

0

코드 시작 부분이 변경되었으며 현재 작동 중입니다.

NSString *myRequestString = [NSString stringWithFormat:@"name=%@&phone=%@&address=%@", name, phone, address]; 

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] 
           initWithURL:[NSURL URLWithString: @"https://myserver.com/myscript.php"]]; 
[request setHTTPMethod:@"POST"]; 
[request setValue:@"application/x-www-form-urlencoded; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 
[request setHTTPBody:[myRequestString dataUsingEncoding:NSUTF8StringEncoding]]; 

    NSOperationQueue *queue = [[NSOperationQueue alloc] init]; 

    [NSURLConnection sendAsynchronousRequest:request 
             queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) 
    { 
     if ([data length] > 0 && error == nil) { 
      NSString *content = [NSString stringWithUTF8String:[data bytes]]; 
      NSLog(@"responseData: %@", content); 
     } 
     else if ([data length] == 0 && error == nil) 
      NSLog(@"empty"); 
     else 
      NSLog(@"error"); 
    }]; 
관련 문제