@@ -249,6 +249,10 @@ public Request()
249
249
/// This callback is invoked to provide upload progress.
250
250
/// </summary>
251
251
public ProgressEvent OnUploadProgress { get ; set ; }
252
+ /// <summary>
253
+ /// The http method for use with UnityWebRequest.
254
+ /// </summary>
255
+ public string HttpMethod { get ; set ; }
252
256
#endregion
253
257
}
254
258
#endregion
@@ -342,7 +346,7 @@ private void AddHeaders(Dictionary<string, string> headers)
342
346
{
343
347
headers . Add ( AUTHENTICATION_AUTHORIZATION_HEADER , Authentication . CreateAuthorization ( ) ) ;
344
348
}
345
- else if ( Authentication . HasIamTokenData ( ) )
349
+ else if ( Authentication . HasIamTokenData ( ) )
346
350
{
347
351
headers . Add ( AUTHENTICATION_AUTHORIZATION_HEADER , string . Format ( "Bearer {0}" , Authentication . IamAccessToken ) ) ;
348
352
}
@@ -410,7 +414,7 @@ private IEnumerator ProcessRequestQueue()
410
414
Response resp = new Response ( ) ;
411
415
412
416
DateTime startTime = DateTime . Now ;
413
- if ( ! req . Delete && ! req . Post )
417
+ if ( string . IsNullOrEmpty ( req . HttpMethod ) )
414
418
{
415
419
WWW www = null ;
416
420
if ( req . Forms != null )
@@ -553,45 +557,14 @@ private IEnumerator ProcessRequestQueue()
553
557
554
558
www . Dispose ( ) ;
555
559
}
556
- else if ( req . Post )
557
- {
558
- float timeout = Mathf . Max ( Constants . Config . Timeout , req . Timeout ) ;
559
-
560
- PostRequest postReq = new PostRequest ( ) ;
561
- Runnable . Run ( postReq . Send ( url , req . Headers ) ) ;
562
- while ( ! postReq . IsComplete )
563
- {
564
- if ( req . Cancel )
565
- break ;
566
- if ( ( DateTime . Now - startTime ) . TotalSeconds > timeout )
567
- break ;
568
- yield return null ;
569
- }
570
-
571
- if ( req . Cancel )
572
- continue ;
573
-
574
- resp . Success = postReq . Success ;
575
- resp . Data = postReq . Data ;
576
- resp . Error = postReq . Error ;
577
- resp . HttpResponseCode = postReq . HttpResponseCode ;
578
- resp . ElapsedTime = ( float ) ( DateTime . Now - startTime ) . TotalSeconds ;
579
- resp . Headers = postReq . ResponseHeaders ;
580
- if ( req . OnResponse != null )
581
- req . OnResponse ( req , resp ) ;
582
- }
583
560
else
584
561
{
585
-
586
- #if ENABLE_DEBUGGING
587
- Log . Debug ( "RESTConnector.ProcessRequestQueue90" , "Delete Request URL: {0}" , url ) ;
588
- #endif
589
-
590
562
float timeout = Mathf . Max ( Constants . Config . Timeout , req . Timeout ) ;
563
+ WatsonRequest watsonRequest = new WatsonRequest ( ) ;
564
+ watsonRequest . HttpMethod = req . HttpMethod ;
565
+ Runnable . Run ( watsonRequest . Send ( url , req . Headers ) ) ;
591
566
592
- DeleteRequest deleteReq = new DeleteRequest ( ) ;
593
- Runnable . Run ( deleteReq . Send ( url , req . Headers ) ) ;
594
- while ( ! deleteReq . IsComplete )
567
+ while ( ! watsonRequest . IsComplete )
595
568
{
596
569
if ( req . Cancel )
597
570
break ;
@@ -603,12 +576,12 @@ private IEnumerator ProcessRequestQueue()
603
576
if ( req . Cancel )
604
577
continue ;
605
578
606
- resp . Success = deleteReq . Success ;
607
- resp . Data = deleteReq . Data ;
608
- resp . Error = deleteReq . Error ;
609
- resp . HttpResponseCode = deleteReq . HttpResponseCode ;
579
+ resp . Success = watsonRequest . Success ;
580
+ resp . Data = watsonRequest . Data ;
581
+ resp . Error = watsonRequest . Error ;
582
+ resp . HttpResponseCode = watsonRequest . HttpResponseCode ;
610
583
resp . ElapsedTime = ( float ) ( DateTime . Now - startTime ) . TotalSeconds ;
611
- resp . Headers = deleteReq . ResponseHeaders ;
584
+ resp . Headers = watsonRequest . ResponseHeaders ;
612
585
if ( req . OnResponse != null )
613
586
req . OnResponse ( req , resp ) ;
614
587
}
@@ -660,24 +633,50 @@ public static int ParseResponseCode(string statusLine)
660
633
661
634
return ret ;
662
635
}
636
+ #endregion
663
637
664
- private class DeleteRequest
638
+ #region WatsonRequest
639
+ private class WatsonRequest
665
640
{
641
+ /// <summary>
642
+ /// The endpoint of the service.
643
+ /// </summary>
666
644
public string URL { get ; set ; }
645
+ /// <summary>
646
+ /// The http method of the call.
647
+ /// </summary>
648
+ public string HttpMethod { get ; set ; }
649
+ /// <summary>
650
+ /// The request headers.
651
+ /// </summary>
667
652
public Dictionary < string , string > Headers { get ; set ; }
653
+ /// <summary>
654
+ /// Is the request complete?
655
+ /// </summary>
668
656
public bool IsComplete { get ; set ; }
657
+ /// <summary>
658
+ /// Did the request succeed?
659
+ /// </summary>
669
660
public bool Success { get ; set ; }
661
+ /// <summary>
662
+ /// The http response code from the request.
663
+ /// </summary>
670
664
public long HttpResponseCode { get ; set ; }
665
+ /// <summary>
666
+ /// The response data from the request.
667
+ /// </summary>
671
668
public byte [ ] Data { get ; set ; }
669
+ /// <summary>
670
+ /// The response error.
671
+ /// </summary>
672
672
public Error Error { get ; set ; }
673
+ /// <summary>
674
+ /// The response headers.
675
+ /// </summary>
673
676
public Dictionary < string , string > ResponseHeaders { get ; set ; }
674
677
675
678
public IEnumerator Send ( string url , Dictionary < string , string > headers )
676
679
{
677
- #if ENABLE_DEBUGGING
678
- Log . Debug ( "DeleteRequest.Send()" , "DeleteRequest, Send: {0}" , url ) ;
679
- #endif
680
-
681
680
URL = url ;
682
681
Headers = new Dictionary < string , string > ( ) ;
683
682
foreach ( var kp in headers )
@@ -691,107 +690,41 @@ public IEnumerator Send(string url, Dictionary<string, string> headers)
691
690
ServicePointManager . ServerCertificateValidationCallback = new RemoteCertificateValidationCallback ( delegate { return true ; } ) ;
692
691
#endif
693
692
694
- #if ENABLE_DEBUGGING
695
- Log . Debug ( "DeleteRequest.Send()" , "DeleteRequest, ProcessRequest {0}" , URL ) ;
696
- #endif
697
- UnityWebRequest deleteReq = UnityWebRequest . Delete ( URL ) ;
698
- deleteReq . method = UnityWebRequest . kHttpVerbDELETE ;
699
- deleteReq . downloadHandler = new DownloadHandlerBuffer ( ) ;
693
+ // Create web request
694
+ UnityWebRequest req = new UnityWebRequest ( ) ;
695
+ req . url = URL ;
696
+ req . method = HttpMethod ;
697
+ req . downloadHandler = new DownloadHandlerBuffer ( ) ;
700
698
701
- foreach ( var kp in Headers )
702
- deleteReq . SetRequestHeader ( kp . Key , kp . Value ) ;
703
- #if UNITY_2017_2_OR_NEWER
704
- yield return deleteReq . SendWebRequest ( ) ;
705
- #else
706
- yield return deleteReq . Send ( ) ;
707
- #endif
708
- Error error = null ;
709
- if ( ! string . IsNullOrEmpty ( deleteReq . error ) )
710
- {
711
- error = new Error ( )
712
- {
713
- URL = url ,
714
- ErrorCode = deleteReq . responseCode ,
715
- ErrorMessage = deleteReq . error ,
716
- Response = deleteReq . downloadHandler . text ,
717
- ResponseHeaders = deleteReq . GetResponseHeaders ( )
718
- } ;
719
- }
720
-
721
- Success = deleteReq . responseCode == HTTP_STATUS_OK || deleteReq . responseCode == HTTP_STATUS_OK || deleteReq . responseCode == HTTP_STATUS_NO_CONTENT || deleteReq . responseCode == HTTP_STATUS_ACCEPTED ;
722
- HttpResponseCode = deleteReq . responseCode ;
723
- ResponseHeaders = deleteReq . GetResponseHeaders ( ) ;
724
- Data = deleteReq . downloadHandler . data ;
725
- Error = error ;
726
- IsComplete = true ;
727
- }
728
- } ;
729
-
730
- private class PostRequest
731
- {
732
- public string URL { get ; set ; }
733
- public Dictionary < string , string > Headers { get ; set ; }
734
- public bool IsComplete { get ; set ; }
735
- public bool Success { get ; set ; }
736
- public long HttpResponseCode { get ; set ; }
737
- public byte [ ] Data { get ; set ; }
738
- public Error Error { get ; set ; }
739
- public Dictionary < string , string > ResponseHeaders { get ; set ; }
740
-
741
- public IEnumerator Send ( string url , Dictionary < string , string > headers )
742
- {
743
- #if ENABLE_DEBUGGING
744
- Log . Debug ( "PostRequest.Send()" , "PostRequest, Send: {0}" , url ) ;
745
- #endif
746
-
747
- URL = url ;
748
- Headers = new Dictionary < string , string > ( ) ;
749
- foreach ( var kp in headers )
750
- {
751
- if ( kp . Key != "User-Agent" )
752
- Headers [ kp . Key ] = kp . Value ;
753
- }
754
-
755
- #if ! NETFX_CORE
756
- // This fixes the exception thrown by self-signed certificates.
757
- ServicePointManager . ServerCertificateValidationCallback = new RemoteCertificateValidationCallback ( delegate { return true ; } ) ;
758
- #endif
759
-
760
- #if ENABLE_DEBUGGING
761
- Log . Debug ( "PostRequest.Send()" , "PostRequest, ProcessRequest {0}" , URL ) ;
762
- #endif
763
- UnityWebRequest postReq = UnityWebRequest . Get ( URL ) ;
764
- postReq . method = UnityWebRequest . kHttpVerbPOST ;
765
- postReq . downloadHandler = new DownloadHandlerBuffer ( ) ;
766
699
767
700
foreach ( var kp in Headers )
768
- postReq . SetRequestHeader ( kp . Key , kp . Value ) ;
701
+ req . SetRequestHeader ( kp . Key , kp . Value ) ;
769
702
#if UNITY_2017_2_OR_NEWER
770
- yield return postReq . SendWebRequest ( ) ;
703
+ yield return req . SendWebRequest ( ) ;
771
704
#else
772
- yield return postReq . Send ( ) ;
705
+ yield return req . Send ( ) ;
773
706
#endif
774
707
Error error = null ;
775
- if ( ! string . IsNullOrEmpty ( postReq . error ) )
708
+ if ( ! string . IsNullOrEmpty ( req . error ) )
776
709
{
777
710
error = new Error ( )
778
711
{
779
712
URL = url ,
780
- ErrorCode = postReq . responseCode ,
781
- ErrorMessage = postReq . error ,
782
- Response = postReq . downloadHandler . text ,
783
- ResponseHeaders = postReq . GetResponseHeaders ( )
713
+ ErrorCode = req . responseCode ,
714
+ ErrorMessage = req . error ,
715
+ Response = req . downloadHandler . text ,
716
+ ResponseHeaders = req . GetResponseHeaders ( )
784
717
} ;
785
718
}
786
719
787
- Success = postReq . responseCode == HTTP_STATUS_OK || postReq . responseCode == HTTP_STATUS_OK || postReq . responseCode == HTTP_STATUS_NO_CONTENT || postReq . responseCode == HTTP_STATUS_ACCEPTED ;
788
- HttpResponseCode = postReq . responseCode ;
789
- ResponseHeaders = postReq . GetResponseHeaders ( ) ;
790
- Data = postReq . downloadHandler . data ;
720
+ Success = req . responseCode == HTTP_STATUS_OK || req . responseCode == HTTP_STATUS_NO_CONTENT || req . responseCode == HTTP_STATUS_ACCEPTED ;
721
+ HttpResponseCode = req . responseCode ;
722
+ ResponseHeaders = req . GetResponseHeaders ( ) ;
723
+ Data = req . downloadHandler . data ;
791
724
Error = error ;
792
725
IsComplete = true ;
793
726
}
794
- } ;
727
+ }
795
728
#endregion
796
729
}
797
730
}
0 commit comments