上周臨時支援別的專案,要將古老專案取 Call WebService 的程式改寫成可以定時跑的 Windows 排程。
確認客戶的 Server 有 .NET Framework 4.7 的 runtime 後,直覺反應用 Visual Studio 建個 Console App 專案,從原專案程式碼搬過來再改參數就完事了。
誰知竟然出現了「WebRequest.Create(string)已過時」的錯誤!原專案沒有啊!!!
搜尋了一下網路找到「WebRequest、WebClient 和 ServicePoint 已淘汰」
再檢查專案才發現 Console App 開到 .NET 8 了...唉~~~常常回個話就忘了要幹的事...Orz
放是再開了.NET Framework 4.7 及 4.8 的專案,果然 WebRequest.Create(string) 就沒有過時提示了。
接下來照著規劃改寫...耶...不出意外又出意外了,原專案程式碼幾乎沒有例外處理,而且改參數取得的資料竟然有濾不掉的控制字元!!!

結果搞了 2 天才把這簡單任務(老電影動作戲好看,雖然劇情有點瞎...)完成。
結束後對 WebRequest 為什麼被棄用,以及官方要改用 HTTPClient 做了些整理,簡單說明如下:
PS. 若是用 PostMan Call WebAPI 或 WebService 並且產生 C# Code,印象中老早也提供 HttpClient 的範例了。
本文同步發表至我的Blog