出于调试目的,我想打印整个请求体.我正在使用AFHTTPClient.打印客户端提供一些信息,如标题,但post/get params不存在.
有没有办法做到这一点?
Aar*_*ger 37
对于AFNetworking 1.x,请使用AFHTTPRequestOperationLogger.
对于AFNetworking 2.x,请使用AFNetworkActivityLogger.
这些工具都使用NSNotificationAFNetworking 的广播将请求和响应数据记录到控制台.要显示的信息量是可配置的,可以将它们配置为忽略某些操作.
如果要检查的传出请求的身体,看NSURLRequest的HTTPBody参数,这是你的一个属性AFHTTPRequestOperation.
例如,在方法中-[AFHTTPClient getPath:
parameters:
success:
failure:],在发出请求后,您可以在调试器中键入:
po [[NSString alloc] initWithData:request.HTTPBody encoding:4]
4 NSUTF8StringEncoding,如NSString.h中所定义.
所述NSURLRequest的HTTPMethod参数提供了方法(GET,POST,PUT,等)作为一个NSString.
当您的服务器响应时,您的成功完成块将传递一个AFHTTPRequestOperation对象(operation默认情况下调用).您可以:
p (int)[[operation response] statusCode] 查看状态代码po [[operation response] allHeaderFields] 看到标题po [operation responseString] 看到响应机构 po [operation responseObject]查看响应对象(可能是nil因为它无法序列化)Zee*_*Zee 21
从AFNetworking 2.0开始,您应该使用AFNetworkActivityLogger
#import "AFNetworkActivityLogger.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
#ifdef DEBUG
[[AFNetworkActivityLogger sharedLogger] startLogging];
[[AFNetworkActivityLogger sharedLogger] setLevel:AFLoggerLevelDebug];
#endif
return YES;
}
Run Code Online (Sandbox Code Playgroud)
如果您正在使用3.0和使用CocoaPods,您还需要AFNetworkActivityLogger从相应的分支中提取:
pod 'AFNetworkActivityLogger', git: 'https://github.com/AFNetworking/AFNetworkActivityLogger.git', branch: '3_0_0'
Run Code Online (Sandbox Code Playgroud)
Ben*_*ueg 17
您应该查看https://github.com/AFNetworking/AFHTTPRequestOperationLogger和AFLoggerLevelDebug作为调试级别.
#import "AFHTTPRequestOperationLogger.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
#ifdef DEBUG
[[AFHTTPRequestOperationLogger sharedLogger] startLogging];
[[AFHTTPRequestOperationLogger sharedLogger] setLevel:AFLoggerLevelDebug];
#endif
return YES;
}
@end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21791 次 |
| 最近记录: |