2013-07-03 4 views
0

이것은 파일 업로드를위한 나의 POST 요청입니다. 실제 보내기 전에 서버에 보내는 JSON을 어떻게 NSLog 할 수 있습니까?JSON을 보내기 전에 NSLog하는 방법

NSMutableDictionary *dict = [NSMutableDictionary dictionary]; 
[dict setObject:twitid forKey:@"twit"]; 
[dict setObject:hash forKey:@"hash"]; 

AFHTTPClient *httpClient = [[AFHTTPClient alloc] initWithBaseURL:url]; 
if ([mediaFile isKindOfClass:[UIImage class]]) 
{ 
    imageData = UIImageJPEGRepresentation(mediaFile, 0.5); 
} 

NSMutableURLRequest *request = [httpClient multipartFormRequestWithMethod:@"POST" path:nil parameters:dict constructingBodyWithBlock: ^(id <AFMultipartFormData>formData) { 

if ([mediaFile isKindOfClass:[UIImage class]]) 
     { 
      [formData appendPartWithFileData:imageData name:@"media" fileName:@"picture.png" mimeType:@"image/png"]; 
     } 
    else if(isThisAudio) 
    { 
     [formData appendPartWithFileData:mediaFile name:@"media" fileName:@"audio.caf" mimeType:@"audio/caf"]; 
    } 
    else 
    { 
     [formData appendPartWithFileData:mediaFile name:@"media" fileName:@"movie.mov" mimeType:@"video/quicktime"]; 
    } 

}]; 

AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request 

success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) 
{ 
    NSDictionary *jsonDictionary = JSON;  
    NSLog(@"jsonDictionary: %@",jsonDictionary); 
} 
failure:^(NSURLRequest *request , NSURLResponse *response , NSError *error , id JSON) 
{ 
    NSLog(@"Failed: %@",[error localizedDescription]); 
}]; 
[operation setUploadProgressBlock:^(NSUInteger bytesWritten, long long totalBytesWritten, long long totalBytesExpectedToWrite) { 

    percentDone = ((float)((int)totalBytesWritten)/(float)((int)totalBytesExpectedToWrite)); 
    NSLog(@"Uploaded %f",percentDone); 
}]; 
[httpClient enqueueHTTPRequestOperation:operation]; 
+0

난 당신이 요청 – CarlJ

+0

I 파일 및 딕셔너리라는 사전을 보내고있다 어떤 JSON 데이터를 추가 할 코드 라인을 볼 수 없습니다. 나는 그것을 보내기 전에 모든 것을 인쇄하고 싶다. – Segev

+0

어쩌면 나는 블라인드하지만, "JSON dict"을 추가하는 코드 줄을 찾을 수 없다. – CarlJ

답변

0

좋은 선택은 Charles proxy과 같은 것을 사용하여 실제로 네트워크를 통해 전송되는 것을 모니터링하는 것입니다. 이 방법으로 코드 흐름의 어느 시점에서 상태가 아니라 네트워크에서 실제로 발생하는 것을 볼 수 있습니다.

+0

그냥 콘솔에 출력 할 수 없습니까? – Segev

+0

Charles 프록시 방식을 사용하지 않습니다. 콘솔에서 인쇄하려면 데이터가 생성 된 코드의 어느 지점에 NSLog를 추가해야합니다. – Wain

0

체크 아웃 NSURLRequest-cURL 카테고리. 범주와

당신은 간단하게 할 수 있습니다

NSLog(@"%s %@", __FUNCTION__, [request cURLCommand]) 
관련 문제