Skip to content

Commit 391b060

Browse files
#9 Async await fix
1 parent a9507f9 commit 391b060

File tree

4 files changed

+22
-16
lines changed

4 files changed

+22
-16
lines changed

CSharpHTTPClient/Client.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ public override bool TryInvokeMember(InvokeMemberBinder binder, object[] args, o
242242
}
243243
i++;
244244
}
245-
result = RequestAsync(binder.Name.ToUpper(), requestBody: requestBody, queryParams: queryParams).Result;
245+
result = RequestAsync(binder.Name.ToUpper(), requestBody: requestBody, queryParams: queryParams).ConfigureAwait(false);
246246
return true;
247247
}
248248
else

Example/Example.cs

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Collections.Generic;
33
using SendGrid.CSharp.HTTP.Client;
44
using System.Web.Script.Serialization;
5+
using System.Threading.Tasks;
56

67
// This is a working example, using the SendGrid API
78
// You will need a SendGrid account and an active API Key
@@ -11,6 +12,11 @@ namespace Example
1112
class Example
1213
{
1314
static void Main(string[] args)
15+
{
16+
Execute().Wait();
17+
}
18+
19+
static async Task Execute()
1420
{
1521
String host = "https://e9sk3d3bfaikbpdq7.stoplight-proxy.io";
1622
Dictionary<String, String> globalRequestHeaders = new Dictionary<String, String>();
@@ -27,15 +33,15 @@ static void Main(string[] args)
2733
}";
2834
Dictionary<String, String> requestHeaders = new Dictionary<String, String>();
2935
requestHeaders.Add("X-Test", "test");
30-
dynamic response = client.api_keys.get(queryParams: queryParams, requestHeaders: requestHeaders);
31-
// Console.WriteLine(response.StatusCode);
32-
// Console.WriteLine(response.Body.ReadAsStringAsync().Result);
33-
// Console.WriteLine(response.Headers.ToString());
36+
dynamic response = await client.api_keys.get(queryParams: queryParams, requestHeaders: requestHeaders);
37+
Console.WriteLine(response.StatusCode);
38+
Console.WriteLine(response.Body.ReadAsStringAsync().Result);
39+
Console.WriteLine(response.Headers.ToString());
3440

3541
var dssResponseBody = response.DeserializeResponseBody(response.Body);
36-
foreach ( var value in dssResponseBody["result"])
42+
foreach (var value in dssResponseBody["result"])
3743
{
38-
Console.WriteLine("name: {0}, api_key_id: {1}",value["name"], value["api_key_id"]);
44+
Console.WriteLine("name: {0}, api_key_id: {1}", value["name"], value["api_key_id"]);
3945
}
4046

4147
var dssResponseHeaders = response.DeserializeResponseHeaders(response.Headers);
@@ -58,7 +64,7 @@ static void Main(string[] args)
5864
}";
5965
requestHeaders.Clear();
6066
requestHeaders.Add("X-Test", "test2");
61-
response = client.api_keys.post(requestBody: requestBody, requestHeaders: requestHeaders);
67+
response = await client.api_keys.post(requestBody: requestBody, requestHeaders: requestHeaders);
6268
Console.WriteLine(response.StatusCode);
6369
Console.WriteLine(response.Body.ReadAsStringAsync().Result);
6470
Console.WriteLine(response.Headers.ToString());
@@ -70,7 +76,7 @@ static void Main(string[] args)
7076
Console.ReadLine();
7177

7278
// GET Single
73-
response = client.api_keys._(api_key_id).get();
79+
response = await client.api_keys._(api_key_id).get();
7480
Console.WriteLine(response.StatusCode);
7581
Console.WriteLine(response.Body.ReadAsStringAsync().Result);
7682
Console.WriteLine(response.Headers.ToString());
@@ -82,7 +88,7 @@ static void Main(string[] args)
8288
requestBody = @"{
8389
'name': 'A New Hope'
8490
}";
85-
response = client.api_keys._(api_key_id).patch(requestBody: requestBody);
91+
response = await client.api_keys._(api_key_id).patch(requestBody: requestBody);
8692
Console.WriteLine(response.StatusCode);
8793
Console.WriteLine(response.Body.ReadAsStringAsync().Result);
8894
Console.WriteLine(response.Headers.ToString());
@@ -98,7 +104,7 @@ static void Main(string[] args)
98104
'user.profile.update'
99105
]
100106
}";
101-
response = client.api_keys._(api_key_id).put(requestBody: requestBody);
107+
response = await client.api_keys._(api_key_id).put(requestBody: requestBody);
102108
Console.WriteLine(response.StatusCode);
103109
Console.WriteLine(response.Body.ReadAsStringAsync().Result);
104110
Console.WriteLine(response.Headers.ToString());
@@ -107,7 +113,7 @@ static void Main(string[] args)
107113
Console.ReadLine();
108114

109115
// DELETE
110-
response = client.api_keys._(api_key_id).delete();
116+
response = await client.api_keys._(api_key_id).delete();
111117
Console.WriteLine(response.StatusCode);
112118
Console.WriteLine(response.Headers.ToString());
113119

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Here is a quick example:
3434
using SendGrid.CSharp.HTTP.Client;
3535
globalRequestHeaders.Add("Authorization", "Bearer XXXXXXX");
3636
dynamic client = new Client(host: baseUrl, requestHeaders: globalRequestHeaders);
37-
client.your.api._(param).call.get()
37+
var response = await client.your.api._(param).call.get()
3838
Console.WriteLine(response.StatusCode);
3939
Console.WriteLine(response.Body.ReadAsStringAsync().Result);
4040
Console.WriteLine(response.Headers.ToString());
@@ -49,7 +49,7 @@ dynamic client = new Client(host: baseUrl, requestHeaders: globalRequestHeaders)
4949
string queryParams = "{'Hello': 0, 'World': 1}";
5050
requestHeaders.Add("X-Test", "test");
5151
string requestBody = "{'some': 1, 'awesome': 2, 'data': 3}";
52-
var response = client.your.api._(param).call.post(requestBody: requestBody,
52+
var response = await client.your.api._(param).call.post(requestBody: requestBody,
5353
queryParams: queryParams,
5454
requestHeaders: requestHeaders)
5555
Console.WriteLine(response.StatusCode);

UnitTest/UnitTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,11 @@ public void TestReflection()
6464
}
6565

6666
[Test]
67-
public void TestMethodCall()
67+
public async void TestMethodCall()
6868
{
6969
var host = "http://api.test.com";
7070
dynamic test_client = new MockClient(host: host);
71-
Response response = test_client.get();
71+
Response response = await test_client.get();
7272
Assert.IsNotNull(response);
7373
Assert.AreEqual(response.StatusCode, HttpStatusCode.OK);
7474
var content = new StringContent("{'test': 'test_content'}", Encoding.UTF8, "application/json");

0 commit comments

Comments
 (0)