Skip to content

Commit 4e7485b

Browse files
authored
Fix build window (#10571)
* Revert "Merge pull request #10033 from Proton-V/hotfix/correct-async-request" This reverts commit cd96480. * Update DevicePortal.cs * Re-add ResponseUtils.cs * Update Rest.cs * Remove breaking change
1 parent 3f24251 commit 4e7485b

File tree

3 files changed

+54
-42
lines changed

3 files changed

+54
-42
lines changed

Assets/MRTK/Core/Utilities/WebRequestRest/Response.cs

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,7 @@ public struct Response
1919
/// <summary>
2020
/// Response body from the resource.
2121
/// </summary>
22-
[Obsolete("This property is obsolete. " +
23-
"Use the GetResponseBody() method instead.", false)]
24-
public string ResponseBody => responseBody ?? (responseBody = responseBodyTask?.Result);
22+
public string ResponseBody => responseBody ?? (responseBody = responseBodyAction?.Invoke());
2523

2624
/// <summary>
2725
/// Response body from the resource.
@@ -34,7 +32,9 @@ public async Task<string> GetResponseBody()
3432
}
3533
return await responseBodyTask;
3634
}
35+
3736
private string responseBody;
37+
private Func<string> responseBodyAction;
3838
private Task<string> responseBodyTask;
3939

4040
/// <summary>
@@ -55,16 +55,29 @@ public async Task<string> GetResponseBody()
5555
public Response(bool successful, string responseBody, byte[] responseData, long responseCode)
5656
{
5757
Successful = successful;
58+
responseBodyAction = null;
5859
responseBodyTask = null;
5960
this.responseBody = responseBody;
6061
responseDataAction = null;
6162
this.responseData = responseData;
6263
ResponseCode = responseCode;
6364
}
6465

66+
public Response(bool successful, Func<string> responseBodyAction, Func<byte[]> responseDataAction, long responseCode)
67+
{
68+
Successful = successful;
69+
this.responseBodyAction = responseBodyAction;
70+
responseBodyTask = ResponseUtils.BytesToString(responseDataAction.Invoke());
71+
responseBody = null;
72+
this.responseDataAction = responseDataAction;
73+
responseData = null;
74+
ResponseCode = responseCode;
75+
}
76+
6577
public Response(bool successful, Task<string> responseBodyTask, Func<byte[]> responseDataAction, long responseCode)
6678
{
6779
Successful = successful;
80+
responseBodyAction = () => System.Text.Encoding.Default.GetString(responseDataAction.Invoke());
6881
this.responseBodyTask = responseBodyTask;
6982
responseBody = null;
7083
this.responseDataAction = responseDataAction;
@@ -75,6 +88,7 @@ public Response(bool successful, Task<string> responseBodyTask, Func<byte[]> res
7588
public Response(bool successful, Func<byte[]> responseDataAction, long responseCode)
7689
{
7790
Successful = successful;
91+
responseBodyAction = () => System.Text.Encoding.Default.GetString(responseDataAction.Invoke());
7892
responseBodyTask = ResponseUtils.BytesToString(responseDataAction.Invoke());
7993
responseBody = null;
8094
this.responseDataAction = responseDataAction;

Assets/MRTK/Core/Utilities/WebRequestRest/Rest.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,7 @@ private static async Task<Response> ProcessRequestAsync(UnityWebRequest webReque
350350

351351
long responseCode = webRequest.responseCode;
352352
Func<byte[]> downloadHandlerDataAction = () => webRequest.downloadHandler?.data;
353+
Func<string> downloadHandlerTextAction = () => webRequest.downloadHandler?.text;
353354

354355
#if UNITY_2020_1_OR_NEWER
355356
if (webRequest.result == UnityWebRequest.Result.ConnectionError || webRequest.result == UnityWebRequest.Result.ProtocolError)
@@ -365,18 +366,18 @@ private static async Task<Response> ProcessRequestAsync(UnityWebRequest webReque
365366
}
366367

367368
string responseHeaders = webRequest.GetResponseHeaders().Aggregate(string.Empty, (current, header) => $"\n{header.Key}: {header.Value}");
368-
string downloadHandlerText = await ResponseUtils.BytesToString(downloadHandlerDataAction.Invoke());
369-
369+
string downloadHandlerText = downloadHandlerTextAction.Invoke();
370370
Debug.LogError($"REST Error: {responseCode}\n{downloadHandlerText}{responseHeaders}");
371371
return new Response(false, $"{responseHeaders}\n{downloadHandlerText}", downloadHandlerDataAction.Invoke(), responseCode);
372372
}
373+
373374
if (readResponseData)
374375
{
375-
return new Response(true, await ResponseUtils.BytesToString(downloadHandlerDataAction.Invoke()), downloadHandlerDataAction.Invoke(), responseCode);
376+
return new Response(true, downloadHandlerTextAction.Invoke(), downloadHandlerDataAction.Invoke(), responseCode);
376377
}
377378
else // This option can be used only if action will be triggered in the same scope as the webrequest
378379
{
379-
return new Response(true, downloadHandlerDataAction, responseCode);
380+
return new Response(true, downloadHandlerTextAction, downloadHandlerDataAction, responseCode);
380381
}
381382
}
382383
}

Assets/MRTK/Core/Utilities/WindowsDevicePortal/DevicePortal.cs

Lines changed: 32 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -110,11 +110,11 @@ public static async Task<DeviceOsInfo> GetDeviceOsInfoAsync(DeviceInfo targetDev
110110
return await GetDeviceOsInfoAsync(targetDevice);
111111
}
112112

113-
Debug.LogError(await response.GetResponseBody());
113+
Debug.LogError(response.ResponseBody);
114114
return null;
115115
}
116116

117-
return JsonUtility.FromJson<DeviceOsInfo>(await response.GetResponseBody());
117+
return JsonUtility.FromJson<DeviceOsInfo>(response.ResponseBody);
118118
}
119119

120120
/// <summary>
@@ -136,11 +136,11 @@ public static async Task<MachineName> GetMachineNameAsync(DeviceInfo targetDevic
136136
return await GetMachineNameAsync(targetDevice);
137137
}
138138

139-
Debug.LogError(await response.GetResponseBody());
139+
Debug.LogError(response.ResponseBody);
140140
return null;
141141
}
142142

143-
return JsonUtility.FromJson<MachineName>(await response.GetResponseBody());
143+
return JsonUtility.FromJson<MachineName>(response.ResponseBody);
144144
}
145145

146146
/// <summary>
@@ -162,11 +162,11 @@ public static async Task<BatteryInfo> GetBatteryStateAsync(DeviceInfo targetDevi
162162
return await GetBatteryStateAsync(targetDevice);
163163
}
164164

165-
Debug.LogError(await response.GetResponseBody());
165+
Debug.LogError(response.ResponseBody);
166166
return null;
167167
}
168168

169-
return JsonUtility.FromJson<BatteryInfo>(await response.GetResponseBody());
169+
return JsonUtility.FromJson<BatteryInfo>(response.ResponseBody);
170170
}
171171

172172
/// <summary>
@@ -190,7 +190,7 @@ public static async Task<PowerStateInfo> GetPowerStateAsync(DeviceInfo targetDev
190190
return null;
191191
}
192192

193-
return JsonUtility.FromJson<PowerStateInfo>(await response.GetResponseBody());
193+
return JsonUtility.FromJson<PowerStateInfo>(response.ResponseBody);
194194
}
195195

196196
/// <summary>
@@ -220,7 +220,7 @@ public static async Task<bool> RestartAsync(DeviceInfo targetDevice)
220220
continue;
221221
}
222222

223-
Debug.LogError(await response.GetResponseBody());
223+
Debug.LogError(response.ResponseBody);
224224
return false;
225225
}
226226

@@ -235,7 +235,7 @@ public static async Task<bool> RestartAsync(DeviceInfo targetDevice)
235235
await RestartAsync(targetDevice);
236236
}
237237

238-
Debug.LogError(await response.GetResponseBody());
238+
Debug.LogError(response.ResponseBody);
239239
return false;
240240
}
241241

@@ -257,7 +257,7 @@ public static async Task<bool> ShutdownAsync(DeviceInfo targetDevice)
257257
return await ShutdownAsync(targetDevice);
258258
}
259259

260-
Debug.LogError(await response.GetResponseBody());
260+
Debug.LogError(response.ResponseBody);
261261
return false;
262262
}
263263

@@ -298,7 +298,7 @@ public static async Task<bool> IsAppRunningAsync(string packageName, DeviceInfo
298298

299299
if (response.Successful)
300300
{
301-
var processList = JsonUtility.FromJson<ProcessList>(await response.GetResponseBody());
301+
var processList = JsonUtility.FromJson<ProcessList>(response.ResponseBody);
302302
for (int i = 0; i < processList.Processes.Length; ++i)
303303
{
304304
if (processList.Processes[i].ImageName.Contains(appInfo.Name))
@@ -315,7 +315,7 @@ public static async Task<bool> IsAppRunningAsync(string packageName, DeviceInfo
315315
return await IsAppRunningAsync(packageName, targetDevice, appInfo);
316316
}
317317

318-
Debug.LogError($"{await response.GetResponseBody()}");
318+
Debug.LogError($"{response.ResponseBody}");
319319
return false;
320320
}
321321

@@ -358,11 +358,11 @@ public static async Task<InstalledApps> GetAllInstalledAppsAsync(DeviceInfo targ
358358
return await GetAllInstalledAppsAsync(targetDevice);
359359
}
360360

361-
Debug.LogError(await response.GetResponseBody());
361+
Debug.LogError(response.ResponseBody);
362362
return null;
363363
}
364364

365-
return JsonUtility.FromJson<InstalledApps>(await response.GetResponseBody());
365+
return JsonUtility.FromJson<InstalledApps>(response.ResponseBody);
366366
}
367367

368368
/// <summary>
@@ -485,7 +485,7 @@ private static async Task<AppInstallStatus> GetInstallStatusAsync(DeviceInfo tar
485485

486486
if (response.Successful)
487487
{
488-
var status = JsonUtility.FromJson<InstallStatus>(await response.GetResponseBody());
488+
var status = JsonUtility.FromJson<InstallStatus>(response.ResponseBody);
489489

490490
if (status == null)
491491
{
@@ -545,7 +545,7 @@ public static async Task<bool> UninstallAppAsync(string packageName, DeviceInfo
545545
}
546546

547547
Debug.LogError($"Failed to uninstall {packageName} on {targetDevice.ToString()}");
548-
Debug.LogError(await response.GetResponseBody());
548+
Debug.LogError(response.ResponseBody);
549549
return false;
550550
}
551551

@@ -582,7 +582,7 @@ public static async Task<bool> LaunchAppAsync(string packageName, DeviceInfo tar
582582
return await LaunchAppAsync(packageName, targetDevice);
583583
}
584584

585-
Debug.LogError($"{response.ResponseCode}|{await response.GetResponseBody()}");
585+
Debug.LogError($"{response.ResponseCode}|{response.ResponseBody}");
586586
return false;
587587
}
588588

@@ -624,7 +624,7 @@ public static async Task<bool> StopAppAsync(string packageName, DeviceInfo targe
624624
return await StopAppAsync(packageName, targetDevice);
625625
}
626626

627-
Debug.LogError(await response.GetResponseBody());
627+
Debug.LogError(response.ResponseBody);
628628
return false;
629629
}
630630

@@ -666,11 +666,11 @@ public static async Task<string> DownloadLogFileAsync(string packageName, Device
666666
return await DownloadLogFileAsync(packageName, targetDevice);
667667
}
668668

669-
Debug.LogError(await response.GetResponseBody());
669+
Debug.LogError(response.ResponseBody);
670670
return string.Empty;
671671
}
672672

673-
File.WriteAllText(logFile, await response.GetResponseBody());
673+
File.WriteAllText(logFile, response.ResponseBody);
674674
return logFile;
675675

676676
}
@@ -694,11 +694,11 @@ public static async Task<IpConfigInfo> GetIpConfigInfoAsync(DeviceInfo targetDev
694694
return await GetIpConfigInfoAsync(targetDevice);
695695
}
696696

697-
Debug.LogError(await response.GetResponseBody());
697+
Debug.LogError(response.ResponseBody);
698698
return null;
699699
}
700700

701-
return JsonUtility.FromJson<IpConfigInfo>(await response.GetResponseBody());
701+
return JsonUtility.FromJson<IpConfigInfo>(response.ResponseBody);
702702
}
703703

704704
/// <summary>
@@ -721,11 +721,11 @@ public static async Task<AvailableWiFiNetworks> GetAvailableWiFiNetworksAsync(De
721721
return await GetAvailableWiFiNetworksAsync(targetDevice, interfaceInfo);
722722
}
723723

724-
Debug.LogError(await response.GetResponseBody());
724+
Debug.LogError(response.ResponseBody);
725725
return null;
726726
}
727727

728-
return JsonUtility.FromJson<AvailableWiFiNetworks>(await response.GetResponseBody());
728+
return JsonUtility.FromJson<AvailableWiFiNetworks>(response.ResponseBody);
729729
}
730730

731731
/// <summary>
@@ -766,11 +766,11 @@ public static async Task<NetworkInterfaces> GetWiFiNetworkInterfacesAsync(Device
766766
return await GetWiFiNetworkInterfacesAsync(targetDevice);
767767
}
768768

769-
Debug.LogError(await response.GetResponseBody());
769+
Debug.LogError(response.ResponseBody);
770770
return null;
771771
}
772772

773-
return JsonUtility.FromJson<NetworkInterfaces>(await response.GetResponseBody());
773+
return JsonUtility.FromJson<NetworkInterfaces>(response.ResponseBody);
774774
}
775775

776776
/// <summary>
@@ -827,17 +827,17 @@ public static async Task<bool> EnsureAuthenticationAsync(DeviceInfo targetDevice
827827
{
828828
// If null, authentication succeeded but we had no cookie token in the response.
829829
// This usually means Unity has a cached token, so it can be ignored.
830-
if (await response.GetResponseBody() != null)
830+
if (response.ResponseBody != null)
831831
{
832-
targetDevice.CsrfToken = await response.GetResponseBody();
832+
targetDevice.CsrfToken = response.ResponseBody;
833833

834834
// Strip the beginning of the cookie header
835835
targetDevice.CsrfToken = targetDevice.CsrfToken.Replace("CSRF-Token=", string.Empty);
836836
}
837837
}
838838
else
839839
{
840-
Debug.LogError($"Authentication failed! {await response.GetResponseBody()}");
840+
Debug.LogError($"Authentication failed! {response.ResponseBody}");
841841
}
842842

843843
if (!string.IsNullOrEmpty(targetDevice.CsrfToken))
@@ -898,15 +898,12 @@ private static async Task<Response> DevicePortalAuthorizationAsync(DeviceInfo ta
898898
}
899899

900900
string responseHeaders = webRequest.GetResponseHeaders().Aggregate(string.Empty, (current, header) => $"\n{header.Key}: {header.Value}");
901-
902-
byte[] downloadHandlerData = webRequest.downloadHandler?.data;
903-
string downloadHandlerText = await ResponseUtils.BytesToString(downloadHandlerData);
904-
901+
string downloadHandlerText = webRequest.downloadHandler?.text;
905902
Debug.LogError($"REST Auth Error: {responseCode}\n{downloadHandlerText}{responseHeaders}");
906-
return new Response(false, $"{downloadHandlerText}", downloadHandlerData, responseCode);
903+
return new Response(false, $"{downloadHandlerText}", webRequest.downloadHandler?.data, responseCode);
907904
}
908905

909-
return new Response(true, new Task<string>(() => webRequest.GetResponseHeader("Set-Cookie")), () => webRequest.downloadHandler?.data, responseCode);
906+
return new Response(true, () => webRequest.GetResponseHeader("Set-Cookie"), () => webRequest.downloadHandler?.data, responseCode);
910907
}
911908
}
912909
}

0 commit comments

Comments
 (0)