2013-07-03 18 views
0

這是我的上傳文件的POST請求。我如何才能在實際發送前發送給服務器的JSON?如何NSLog JSON發送之前

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

我看不到任何代碼行,你追加任何JSON數據請求 – CarlJ

+0

我送一個文件和一個名爲字典詞典的位置。我想在發送之前將所有內容打印出來。 – Segev

+0

也許我是盲人,但我無法找到你添加「JSON字典」的代碼行 – CarlJ

回答

0

一個很好的選擇是使用類似Charles proxy監視什麼實際上正在通過網絡發送。通過這種方式,您可以看到網絡上實際發生的情況,而不是代碼流中某些時刻的狀態。

+0

我不能在控制檯中打印出來嗎? – Segev

+0

不使用Charles代理方法,沒有。要在控制檯上打印,您需要在生成數據的代碼中的某個點添加NSLog。 – Wain

0

結帳NSURLRequest-cURL類別。

與類別,你可以簡單地說:

NSLog(@"%s %@", __FUNCTION__, [request cURLCommand])