5
5
using System . IO ;
6
6
using PlayFab . PfEditor . Json ;
7
7
using PlayFab . PfEditor . EditorModels ;
8
+ using UnityEngine . Networking ;
8
9
9
10
namespace PlayFab . PfEditor
10
11
{
11
12
public class PlayFabEditorHttp : UnityEditor . Editor
12
13
{
13
14
internal static void MakeDownloadCall ( string url , Action < string > resultCallback )
14
15
{
16
+ #if UNITY_2018_2_OR_NEWER
17
+ UnityWebRequest www = UnityWebRequest . Get ( url ) ;
18
+ PlayFabEditor . RaiseStateUpdate ( PlayFabEditor . EdExStates . OnHttpReq , url , PlayFabEditorHelper . MSG_SPIN_BLOCK ) ;
19
+ EditorCoroutine . Start ( PostDownload ( www , ( response ) => { WriteResultFile ( url , resultCallback , response ) ; } , PlayFabEditorHelper . SharedErrorCallback ) , www ) ;
20
+ #else
15
21
var www = new WWW ( url ) ;
16
22
PlayFabEditor . RaiseStateUpdate ( PlayFabEditor . EdExStates . OnHttpReq , url , PlayFabEditorHelper . MSG_SPIN_BLOCK ) ;
17
23
EditorCoroutine . Start ( PostDownload ( www , ( response ) => { WriteResultFile ( url , resultCallback , response ) ; } , PlayFabEditorHelper . SharedErrorCallback ) , www ) ;
24
+ #endif
18
25
}
19
26
20
27
private static void WriteResultFile ( string url , Action < string > resultCallback , byte [ ] response )
@@ -63,10 +70,34 @@ internal static void MakeApiCall<TRequestType, TResultType>(string api, string a
63
70
64
71
//Encode Payload
65
72
var payload = System . Text . Encoding . UTF8 . GetBytes ( req . Trim ( ) ) ;
73
+ #if UNITY_2018_2_OR_NEWER
74
+ var www = new UnityWebRequest ( url )
75
+ {
76
+ uploadHandler = new UploadHandlerRaw ( payload ) ,
77
+ downloadHandler = new DownloadHandlerBuffer ( ) ,
78
+ method = "POST"
79
+ } ;
80
+
81
+ foreach ( var header in headers )
82
+ {
83
+ if ( ! string . IsNullOrEmpty ( header . Key ) && ! string . IsNullOrEmpty ( header . Value ) )
84
+ {
85
+ www . SetRequestHeader ( header . Key , header . Value ) ;
86
+ }
87
+ else
88
+ {
89
+ UnityEngine . Debug . LogWarning ( "Null header" ) ;
90
+ }
91
+ }
92
+
93
+
94
+ PlayFabEditor . RaiseStateUpdate ( PlayFabEditor . EdExStates . OnHttpReq , api , PlayFabEditorHelper . MSG_SPIN_BLOCK ) ;
95
+ EditorCoroutine . Start ( Post ( www , ( response ) => { OnWwwSuccess ( api , resultCallback , errorCallback , response ) ; } , ( error ) => { OnWwwError ( errorCallback , error ) ; } ) , www ) ;
96
+ #else
66
97
var www = new WWW ( url , payload , headers ) ;
67
98
PlayFabEditor . RaiseStateUpdate ( PlayFabEditor . EdExStates . OnHttpReq , api , PlayFabEditorHelper . MSG_SPIN_BLOCK ) ;
68
-
69
99
EditorCoroutine . Start ( Post ( www , ( response ) => { OnWwwSuccess ( api , resultCallback , errorCallback , response ) ; } , ( error ) => { OnWwwError ( errorCallback , error ) ; } ) , www ) ;
100
+ #endif
70
101
}
71
102
72
103
private static void OnWwwSuccess < TResultType > ( string api , Action < TResultType > resultCallback , Action < PlayFab . PfEditor . EditorModels . PlayFabError > errorCallback , string response ) where TResultType : class
@@ -103,8 +134,13 @@ private static void OnWwwError(Action<PlayFab.PfEditor.EditorModels.PlayFabError
103
134
104
135
internal static void MakeGitHubApiCall ( string url , Action < string > resultCallback )
105
136
{
137
+ #if UNITY_2018_2_OR_NEWER
138
+ UnityWebRequest webReq = UnityWebRequest . Get ( url ) ;
139
+ EditorCoroutine . Start ( Post ( webReq , ( response ) => { OnGitHubSuccess ( resultCallback , response ) ; } , PlayFabEditorHelper . SharedErrorCallback ) , webReq ) ;
140
+ #else
106
141
var www = new WWW ( url ) ;
107
142
EditorCoroutine . Start ( Post ( www , ( response ) => { OnGitHubSuccess ( resultCallback , response ) ; } , PlayFabEditorHelper . SharedErrorCallback ) , www ) ;
143
+ #endif
108
144
}
109
145
110
146
private static void OnGitHubSuccess ( Action < string > resultCallback , string response )
@@ -130,7 +166,43 @@ private static void OnGitHubSuccess(Action<string> resultCallback, string respon
130
166
resultCallback ( null ) ;
131
167
}
132
168
}
169
+ #if UNITY_2018_2_OR_NEWER
170
+ private static IEnumerator Post ( UnityWebRequest www , Action < string > callBack , Action < string > errorCallback )
171
+ {
172
+ if ( www != null )
173
+ {
174
+ yield return www . SendWebRequest ( ) ;
175
+
176
+ if ( ! string . IsNullOrEmpty ( www . error ) )
177
+ errorCallback ( www . error ) ;
178
+ else
179
+ callBack ( www . downloadHandler . text ) ;
180
+ }
181
+ else
182
+ {
183
+ UnityEngine . Debug . Log ( "UnityWebRequest was null" ) ;
184
+ errorCallback ( "UnityWebRequest Object was null" ) ;
185
+ }
186
+ }
133
187
188
+ private static IEnumerator PostDownload ( UnityWebRequest www , Action < byte [ ] > callBack , Action < string > errorCallback )
189
+ {
190
+ if ( www != null )
191
+ {
192
+ yield return www . SendWebRequest ( ) ;
193
+
194
+ if ( ! string . IsNullOrEmpty ( www . error ) || www . isHttpError )
195
+ errorCallback ( www . error ) ;
196
+ else
197
+ callBack ( www . downloadHandler . data ) ;
198
+ }
199
+ else
200
+ {
201
+ UnityEngine . Debug . Log ( "UnityWebRequest was null" ) ;
202
+ errorCallback ( "UnityWebRequest Object was null" ) ;
203
+ }
204
+ }
205
+ #else
134
206
private static IEnumerator Post ( WWW www , Action < string > callBack , Action < string > errorCallback )
135
207
{
136
208
yield return www ;
@@ -150,5 +222,6 @@ private static IEnumerator PostDownload(WWW www, Action<byte[]> callBack, Action
150
222
else
151
223
callBack ( www . bytes ) ;
152
224
}
225
+ #endif
153
226
}
154
227
}
0 commit comments