自定义NSURLProtocol拦截到的HTTPBody为空

由于升级AFNetWorking新版本使用了NSURLSession,老版本使用的是NSURLConnection,项目中所有POST请求拦截到的HTTPBody为空。具体解决方案如下:

    if ([req.HTTPMethod isEqualToString:@"POST"]) { 
            if (!req.HTTPBody) {  
               uint8_t rd[1024] = {0}; 
                NSInputStream *stream = request.HTTPBodyStream;
                 NSMutableData *data = [[NSMutableData alloc] init];  
               [stream open]; 
                while ([stream hasBytesAvailable]) { 
                    NSInteger len = [stream read:rd maxLength:1024];   
                  if (len > 0 && stream.streamError == nil) {   
                      [data appendBytes:(void *)rd length:len]; 
                    } 
                }     
            req.HTTPBody = [data copy]; 
                [stream close];   
          }   
      }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容