@@ -39,15 +39,15 @@ public async Task<bool> Execute(RoleDialogModel message)
3939 {
4040 var response = await SendHttpRequest ( url , method , content ) ;
4141 var responseContent = await HandleHttpResponse ( response ) ;
42- message . RichContent = BuildRichContent ( responseContent ) ;
42+ message . Content = responseContent ;
4343 message . StopCompletion = true ;
4444 return true ;
4545 }
4646 catch ( Exception ex )
4747 {
4848 var msg = $ "Fail when sending http request. Url: { url } , method: { method } , content: { content } ";
4949 _logger . LogWarning ( $ "{ msg } \n (Error: { ex . Message } )") ;
50- message . RichContent = BuildRichContent ( $ " { msg } " ) ;
50+ message . Content = msg ;
5151 message . StopCompletion = true ;
5252 return false ;
5353 }
@@ -57,21 +57,14 @@ public async Task<bool> Execute(RoleDialogModel message)
5757 {
5858 if ( string . IsNullOrEmpty ( url ) ) return null ;
5959
60- var settings = _services . GetRequiredService < HttpHandlerSettings > ( ) ;
6160 using var client = _httpClientFactory . CreateClient ( ) ;
6261 AddRequestHeaders ( client ) ;
6362
6463 var ( uri , request ) = BuildHttpRequest ( url , method , content ) ;
65- if ( string . IsNullOrEmpty ( uri . Host ) )
66- {
67- client . BaseAddress = new Uri ( settings . BaseAddress ) ;
68- }
69-
7064 var response = await client . SendAsync ( request ) ;
71-
7265 if ( response == null || ! response . IsSuccessStatusCode )
7366 {
74- throw new Exception ( $ "Status code: { response ? . StatusCode } ") ;
67+ _logger . LogWarning ( $ "Response status code: { response ? . StatusCode } ") ;
7568 }
7669
7770 return response ;
@@ -94,17 +87,24 @@ private void AddRequestHeaders(HttpClient client)
9487 var httpMethod = GetHttpMethod ( method ) ;
9588 StringContent httpContent ;
9689
90+ var requestUrl = url ;
9791 if ( httpMethod == HttpMethod . Get )
9892 {
9993 httpContent = BuildHttpContent ( "{}" ) ;
94+ requestUrl = BuildQuery ( url , content ) ;
10095 }
10196 else
10297 {
10398 httpContent = BuildHttpContent ( content ) ;
10499 }
105100
106- var requestUrl = BuildQuery ( url , content ) ;
107- var uri = new Uri ( requestUrl ) ;
101+ if ( ! Uri . TryCreate ( requestUrl , UriKind . Absolute , out var uri ) )
102+ {
103+ var settings = _services . GetRequiredService < HttpHandlerSettings > ( ) ;
104+ var baseUri = new Uri ( settings . BaseAddress ) ;
105+ uri = new Uri ( baseUri , requestUrl ) ;
106+ }
107+
108108 return ( uri , new HttpRequestMessage
109109 {
110110 RequestUri = uri ,
@@ -195,17 +195,4 @@ private async Task<string> HandleHttpResponse(HttpResponseMessage? response)
195195
196196 return await response . Content . ReadAsStringAsync ( ) ;
197197 }
198-
199- private RichContent < IRichMessage > BuildRichContent ( string ? content )
200- {
201- var state = _services . GetRequiredService < IConversationStateService > ( ) ;
202-
203- var text = ! string . IsNullOrEmpty ( content ) ? content : "Cannot get any response from the http request." ;
204- return new RichContent < IRichMessage >
205- {
206- Recipient = new Recipient { Id = state . GetConversationId ( ) } ,
207- Editor = EditorTypeEnum . Text ,
208- Message = new TextMessage ( text )
209- } ;
210- }
211198}
0 commit comments