美文网首页日常小知识点
自定义NSURLProtocol拦截到的HTTPBody为空

自定义NSURLProtocol拦截到的HTTPBody为空

作者: ioser_sk | 来源:发表于2018-03-14 10:43 被阅读3次

    由于升级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];   
              }   
          }
    

    相关文章

      网友评论

        本文标题:自定义NSURLProtocol拦截到的HTTPBody为空

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