Разница между HttpClient и Unity UnityWebRequest / WWW API - PullRequest
0 голосов
/ 03 мая 2018

Unity теперь поддерживает .NET 4.5, и я могу использовать класс HttpClient из пространства имен System.Net.Http. Это здорово, так как у меня есть существующие клиентские библиотеки, которые легко использовать повторно.

Кто-нибудь знает внутреннюю разницу между при использовании моно HttpClient и собственных сетей Unity классов?

Боюсь, что HttpClient не так оптимизирован для разных платформ и поэтому может вызвать проблемы или быть медленнее.

1 Ответ

0 голосов
/ 03 мая 2018

Между ними много различий.

  • UnityWebRequest не позволит вам изменить некоторые заголовки. С HttpClient вы можете изменить практически любой заголовок.

  • UnityWebRequest предназначен для использования, не беспокоясь о потоках или асинхронных процессах. Все, что вам нужно сделать, это использовать сопрограмму, чтобы дождаться запроса. Вся нить уже сделана для вас на родной стороне.

  • Некоторые платформы не поддерживают ничего из пространства имен System.Net. Одним из них является WebGL. Это означает, что HttpClient не будет компилироваться даже при переключении платформы на WebGL. UnityWebRequest отлично работает с WebGL.

  • UnityWebRequest облегчает загрузку данных в память и преобразование данных в ресурсы Unity, такие как AudioClip, VideoClip, AssetBundle, Texture2D и другие. С HttpClient вам придется писать множество кодов, просто извлекать такие данные или, возможно, придется сохранять данные на диске после их получения, чтобы иметь возможность преобразовать их в форму ресурсов Unity.

  • Хотите использовать SSL с UnityWebRequest? Удачи с этим! Вы получите только неоднозначную «неизвестную ошибку» ошибку. Когда в вашем HttpClient задействован протокол SSL,

Со всем, что я только что упомянул, вы должны портировать свой код для использования UnityWebRequest, если вы не делаете что-то, что не поддерживается с UnityWebRequest.

...