Using the constructor of UnityWebRequest creates a generic web request and you would have to set it up completely manually!
Creates a UnityWebRequest with the default options and no attached DownloadHandler or UploadHandler.
Going this way you would need to set it manually
www.downloadHanlder = new DownloadHandlerBuffer();
before starting the request.
In general what you rather want to use is UnityWebRequest.Get which already fully configures the UnityWebRequest in order to successfully perform a GET request.
This is somewhat comparable to e.g. using Socket vs TcpClient.
Then you should anyway always check if the request was successful at all.
(Also see the example from the API)
private IEnumerator LoadBytes(string path, System.Action<byte[]> action)
{
using(var www = UnityWebRequest.Get(path))
{
yield return www.SendWebRequest();
switch (webRequest.result)
{
case UnityWebRequest.Result.ConnectionError:
case UnityWebRequest.Result.DataProcessingError:
Debug.LogError("Error: " + webRequest.error);
break;
case UnityWebRequest.Result.ProtocolError:
Debug.LogError("HTTP Error: " + webRequest.error);
break;
case UnityWebRequest.Result.Success:
action?.Invoke(www.downloadHandler.data);
break;
}
}
}