К сожалению, этот код по своей сути требует доступа к сети, что может занимать неограниченное количество времени (например, крайне медленные или ненадежные горячие точки 3G).
Вероятно, вам следует переместить эту работу в фоновую очередь, чтобы избежать блокировки основного потока, если это вообще возможно.