2012-04-12 1 views
0

ASIHTTPRequest appendPostData 메소드를 사용하여 String 데이터를 PHP 서버로 보내려하지만 작동하지 않습니다. ASIHTTPRequest appendPostData가 작동하지 않습니다.

ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
[request appendPostData:[@"123456" dataUsingEncoding:NSUTF8StringEncoding]]; 
[request startAsynchronous]; 

내가 좋아하는 요청 자체에 약간의 수정을 시도 :

[request setRequestMethod:@"POST"]; 
[request buildPostBody]; 

을하지만이 작동하지 않습니다.

나는이 작업을 수행하는

[request addPostValue:@"Ben" forKey:@"names"]; 

구문을 사용합니다.

누구나 여기에 무슨 문제가 있습니까?!

답변

1

나는 보통이 사용

- (void)performPostRequestWithString:(NSString *)string stringDictionary:(NSDictionary *)stringDictionary dataDictionary:(NSDictionary *)dataDictionary delegate:(id)requestDelegate requestSelector:(SEL)requestSelector errorSelector:(SEL)errorSelector { 

    //localCopy = self; 

    self.delegate = requestDelegate; 
    self.callback = requestSelector; 
    self.errorCallback = errorSelector; 

    NSURL *url = [NSURL URLWithString:string]; 

    postRequest = [[ASIFormDataRequest alloc] initWithURL:url]; 
    [postRequest setDelegate:self]; 
    [postRequest setRequestMethod:@"POST"]; 

    if (stringDictionary) 
     for (NSString *key in [stringDictionary allKeys]) 
      [postRequest setPostValue:[stringDictionary objectForKey:key] forKey:key]; 

    if (dataDictionary) 
     for (NSString *key in [dataDictionary allKeys]) 
      [postRequest setData:[dataDictionary objectForKey:key] forKey:key]; 

    //NSLog(@"request url = %@", [postRequest.url absoluteString]); 
    [postRequest startAsynchronous]; 
} 

매개 변수 :

  • (NSString *)string - 귀하의 요청을 게시 할 URL 문자열을;
  • (NSDictionary *)stringDictionary - 사전에 모든 텍스트 정보 (예 : 이름, ID 등)가 들어 있습니다.
  • (NSDictionary *)dataDictionary - 모든 데이터 정보 (예 : 사진, 파일 등)가 포함 된 사전.
  • (id)requestDelegate - 대리인이 아래의 선택자를 수행합니다.
  • (SEL)requestSelector - 셀렉터가 성공적으로 요청하는 동안 실행됩니다.
  • (SEL)errorSelector - 오류가 발생하는 동안 실행될 선택기입니다.

P. 선택자는 ASIHTTPRequest Delegate 구현에 사용됩니다

+0

감사합니다 !! – user944351