Я обнаружил, что для некоторых полей заголовка («User-Agent» является одним из них), установка значения заголовка равным nil с использованием
[request addValue:nil forHTTPHeaderField:@"User-Agent"];
фактически не удаляет поле заголовка, новместо этого задайте для него значение по умолчанию!
Если вы действительно хотите удалить содержимое, достаточно установить значение в пустую строку с
[request addValue:@"" forHTTPHeaderField:@"User-Agent"];