Skip to content

Commit 0c97db0

Browse files
committed
1. Change Get method Name to GetAsync
2. Manually replace "#" with "%23" to solve the similar issue in Explorer plugin 3. Add GetAsync method with Uri as argument 4. Remove unused encoding argument 5. Change exception type for WebSearch Plguin 6. Update Comment
1 parent e364b84 commit 0c97db0

File tree

4 files changed

+27
-11
lines changed

4 files changed

+27
-11
lines changed

Flow.Launcher.Core/Updater.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ private async Task<UpdateManager> GitHubUpdateManager(string repository)
133133
var uri = new Uri(repository);
134134
var api = $"https://api.github.com/repos{uri.AbsolutePath}/releases";
135135

136-
var json = await Http.Get(api);
136+
var json = await Http.GetAsync(api);
137137

138138
var releases = JsonConvert.DeserializeObject<List<GithubRelease>>(json);
139139
var latest = releases.Where(r => !r.Prerelease).OrderByDescending(r => r.PublishedAt).First();

Flow.Launcher.Infrastructure/Http/Http.cs

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,13 +89,23 @@ public static async Task Download([NotNull] string url, [NotNull] string filePat
8989
}
9090
}
9191

92-
public static async Task<string> Get([NotNull] string url, string encoding = "UTF-8")
92+
/// <summary>
93+
/// Asynchrously get the result as string from url.
94+
/// When supposing the result is long and large, try using GetStreamAsync to avoid reading as string
95+
/// </summary>
96+
/// <param name="url"></param>
97+
/// <returns></returns>
98+
public static Task<string> GetAsync([NotNull] string url)
9399
{
94100
Log.Debug($"|Http.Get|Url <{url}>");
95-
var response = await client.GetAsync(url);
96-
await using var stream = await response.Content.ReadAsStreamAsync();
97-
using var reader = new StreamReader(stream, Encoding.GetEncoding(encoding));
98-
var content = await reader.ReadToEndAsync();
101+
return GetAsync(new Uri(url.Replace("#", "%23")));
102+
}
103+
104+
public static async Task<string> GetAsync([NotNull] Uri url)
105+
{
106+
Log.Debug($"|Http.Get|Url <{url}>");
107+
using var response = await client.GetAsync(url);
108+
var content = await response.Content.ReadAsStringAsync();
99109
if (response.StatusCode == HttpStatusCode.OK)
100110
{
101111
return content;
@@ -107,6 +117,11 @@ public static async Task<string> Get([NotNull] string url, string encoding = "UT
107117
}
108118
}
109119

120+
/// <summary>
121+
/// Asynchrously get the result as stream from url.
122+
/// </summary>
123+
/// <param name="url"></param>
124+
/// <returns></returns>
110125
public static async Task<Stream> GetStreamAsync([NotNull] string url)
111126
{
112127
Log.Debug($"|Http.Get|Url <{url}>");

Plugins/Flow.Launcher.Plugin.WebSearch/SuggestionSources/Baidu.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
using Newtonsoft.Json.Linq;
99
using Flow.Launcher.Infrastructure.Http;
1010
using Flow.Launcher.Infrastructure.Logger;
11+
using System.Net.Http;
1112

1213
namespace Flow.Launcher.Plugin.WebSearch.SuggestionSources
1314
{
@@ -22,9 +23,9 @@ public override async Task<List<string>> Suggestions(string query)
2223
try
2324
{
2425
const string api = "http://suggestion.baidu.com/su?json=1&wd=";
25-
result = await Http.Get(api + Uri.EscapeUriString(query), "GB2312");
26+
result = await Http.GetAsync(api + Uri.EscapeUriString(query)).ConfigureAwait(false);
2627
}
27-
catch (WebException e)
28+
catch (HttpRequestException e)
2829
{
2930
Log.Exception("|Baidu.Suggestions|Can't get suggestion from baidu", e);
3031
return new List<string>();

Plugins/Flow.Launcher.Plugin.WebSearch/SuggestionSources/Google.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using Newtonsoft.Json.Linq;
88
using Flow.Launcher.Infrastructure.Http;
99
using Flow.Launcher.Infrastructure.Logger;
10+
using System.Net.Http;
1011

1112
namespace Flow.Launcher.Plugin.WebSearch.SuggestionSources
1213
{
@@ -18,13 +19,12 @@ public override async Task<List<string>> Suggestions(string query)
1819
try
1920
{
2021
const string api = "https://www.google.com/complete/search?output=chrome&q=";
21-
result = await Http.Get(api + Uri.EscapeUriString(query));
22+
result = await Http.GetAsync(api + Uri.EscapeUriString(query)).ConfigureAwait(false);
2223
}
23-
catch (WebException e)
24+
catch (HttpRequestException e)
2425
{
2526
Log.Exception("|Google.Suggestions|Can't get suggestion from google", e);
2627
return new List<string>();
27-
;
2828
}
2929
if (string.IsNullOrEmpty(result)) return new List<string>();
3030
JContainer json;

0 commit comments

Comments
 (0)