美文网首页
AFnetworking 打印网络请求

AFnetworking 打印网络请求

作者: JingYa_Lu | 来源:发表于2017-08-28 21:57 被阅读279次

    最近在开发中为了调试方便,需要把网络请求以及参数都打印出来,我用的是AFnetworking3. 在网上查一下,有两种办法,

    1.AFNetworking的作者写了一个工具,点这里 ,可以查看网络请求的时间,参数等

    2.我自己大概看了一下AFnetworking 的文件,然后 在发现在这个文件里就可以看到请求

    找到下边的函数,

    - (NSURLRequest *)requestBySerializingRequest:(NSURLRequest *)request

    withParameters:(id)parameters

    error:(NSError *__autoreleasing *)error

    {

    NSParameterAssert(request);

    NSMutableURLRequest *mutableRequest = [request mutableCopy];

    [self.HTTPRequestHeaders enumerateKeysAndObjectsUsingBlock:^(id field, id value, BOOL * __unused stop) {

    if (![request valueForHTTPHeaderField:field]) {

    [mutableRequest setValue:value forHTTPHeaderField:field];

    }

    }];

    NSString *query = nil;

    if (parameters) {

    if (self.queryStringSerialization) {

    NSError *serializationError;

    query = self.queryStringSerialization(request, parameters, &serializationError);

    if (serializationError) {

    if (error) {

    *error = serializationError;

    }

    return nil;

    }

    } else {

    switch (self.queryStringSerializationStyle) {

    case AFHTTPRequestQueryStringDefaultStyle:

    query = AFQueryStringFromParameters(parameters);

    break;

    }

    }

    }

    if ([self.HTTPMethodsEncodingParametersInURI containsObject:[[request HTTPMethod] uppercaseString]]) {

    if (query && query.length > 0) {

    mutableRequest.URL = [NSURL URLWithString:[[mutableRequest.URL absoluteString] stringByAppendingFormat:mutableRequest.URL.query ? @"&%@" : @"?%@", query]];

    }

    } else {

    // #2864: an empty string is a valid x-www-form-urlencoded payload

    if (!query) {

    query = @"";

    }

    if (![mutableRequest valueForHTTPHeaderField:@"Content-Type"]) {

    [mutableRequest setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

    }

    [mutableRequest setHTTPBody:[query dataUsingEncoding:self.stringEncoding]];

    }

    NSLog(@"网络请求url:%@",[NSString stringWithFormat:@"%@?%@",mutableRequest.URL.absoluteString,query]);

    return mutableRequest;

    }

    因为我的项目用的cocoapod,在这里修改,下次更新就没了,所以想用加断点的方式来打印,本来想用po[NSString stringWithFormat:@"%@?%@",mutableRequest.URL.absoluteString,query] 

    但是发现打印不了,只好自己把字符串拼接了一下,

    其中mutableRequest 表示请求,query是处理后的传参,会看到含有乱码

    原始的传参是parameters,打印语句尽量不要用nslog,可以在github上找一个第三方的。

    相关文章

      网友评论

          本文标题:AFnetworking 打印网络请求

          本文链接:https://www.haomeiwen.com/subject/slcndxtx.html