美文网首页
iOS开发技巧:如何用lldb打印AFNetworking的网络

iOS开发技巧:如何用lldb打印AFNetworking的网络

作者: JingYa_Lu | 来源:发表于2019-07-11 10:14 被阅读0次

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

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

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

image

找到下边的函数


- (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;

}

直接加断点,打印下面的参数

  请求的域名: mutableRequest.URL.absoluteString
  参数的字典 :query

这样的好处是,协同开发时不会对他人造成影响,而且也不用担心会在提交代码时误操作。

相关文章

网友评论

      本文标题:iOS开发技巧:如何用lldb打印AFNetworking的网络

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