我不明白我的代碼有什麼問題。我正在使用https://github.com/elcattivo/CloudFlareUtilities解決雲耀斑js。我想從頁面的數據,我使用此代碼:C#client.GetStringAsync(url)stuck
public Form1()
{
InitializeComponent();
Test1("https://SiteWithCloudFlareProtection.com/");
Thread.Sleep(60000);
}
async void Test1(string url)
{
HttpClient HttpClientWithoutCloudFlare = new HttpClient(new ClearanceHandler());
string json = await HttpClientWithoutCloudFlare.GetStringAsync(url).ConfigureAwait(false);
MessageBox.Show("Done");
}
void Test2(string url)
{
HttpClient HttpClientWithoutCloudFlare = new HttpClient(new ClearanceHandler());
string json = HttpClientWithoutCloudFlare.GetStringAsync(url).Result;
MessageBox.Show("Done");
}
沒有Thread.Sleep(60000)
Test1
完美的作品。隨着Thread.Sleep(60000)
Test1
斯托克斯,Test2
總是在命令GetStringAsync(url)
stucks。 Test1(url).Wait();
也有問題。
我錯過了什麼嗎?
我只需要解決雲耀斑保護和從頁面獲取數據。我需要同步做到這一點。
將'Test2'修改爲'async'。它會在您立即使用'Result'時同步運行。 – Venky
@Venky我需要同步做到這一點。 –
你沒有使用'await'。因此即使使用'async'關鍵字,您的代碼也可以同步運行。 – Venky