@@ -39,15 +39,15 @@ public async Task<bool> Execute(RoleDialogModel message)
39
39
{
40
40
var response = await SendHttpRequest ( url , method , content ) ;
41
41
var responseContent = await HandleHttpResponse ( response ) ;
42
- message . RichContent = BuildRichContent ( responseContent ) ;
42
+ message . Content = responseContent ;
43
43
message . StopCompletion = true ;
44
44
return true ;
45
45
}
46
46
catch ( Exception ex )
47
47
{
48
48
var msg = $ "Fail when sending http request. Url: { url } , method: { method } , content: { content } ";
49
49
_logger . LogWarning ( $ "{ msg } \n (Error: { ex . Message } )") ;
50
- message . RichContent = BuildRichContent ( $ " { msg } " ) ;
50
+ message . Content = msg ;
51
51
message . StopCompletion = true ;
52
52
return false ;
53
53
}
@@ -57,21 +57,14 @@ public async Task<bool> Execute(RoleDialogModel message)
57
57
{
58
58
if ( string . IsNullOrEmpty ( url ) ) return null ;
59
59
60
- var settings = _services . GetRequiredService < HttpHandlerSettings > ( ) ;
61
60
using var client = _httpClientFactory . CreateClient ( ) ;
62
61
AddRequestHeaders ( client ) ;
63
62
64
63
var ( uri , request ) = BuildHttpRequest ( url , method , content ) ;
65
- if ( string . IsNullOrEmpty ( uri . Host ) )
66
- {
67
- client . BaseAddress = new Uri ( settings . BaseAddress ) ;
68
- }
69
-
70
64
var response = await client . SendAsync ( request ) ;
71
-
72
65
if ( response == null || ! response . IsSuccessStatusCode )
73
66
{
74
- throw new Exception ( $ "Status code: { response ? . StatusCode } ") ;
67
+ _logger . LogWarning ( $ "Response status code: { response ? . StatusCode } ") ;
75
68
}
76
69
77
70
return response ;
@@ -94,17 +87,24 @@ private void AddRequestHeaders(HttpClient client)
94
87
var httpMethod = GetHttpMethod ( method ) ;
95
88
StringContent httpContent ;
96
89
90
+ var requestUrl = url ;
97
91
if ( httpMethod == HttpMethod . Get )
98
92
{
99
93
httpContent = BuildHttpContent ( "{}" ) ;
94
+ requestUrl = BuildQuery ( url , content ) ;
100
95
}
101
96
else
102
97
{
103
98
httpContent = BuildHttpContent ( content ) ;
104
99
}
105
100
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
+
108
108
return ( uri , new HttpRequestMessage
109
109
{
110
110
RequestUri = uri ,
@@ -195,17 +195,4 @@ private async Task<string> HandleHttpResponse(HttpResponseMessage? response)
195
195
196
196
return await response . Content . ReadAsStringAsync ( ) ;
197
197
}
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
- }
211
198
}
0 commit comments