iT邦幫忙

0

WebRequest.Create(string)已過時

  • 分享至 

  • xImage
  •  

上周臨時支援別的專案,要將古老專案取 Call WebService 的程式改寫成可以定時跑的 Windows 排程。
確認客戶的 Server 有 .NET Framework 4.7 的 runtime 後,直覺反應用 Visual Studio 建個 Console App 專案,從原專案程式碼搬過來再改參數就完事了。

誰知竟然出現了「WebRequest.Create(string)已過時」的錯誤!原專案沒有啊!!!
WebRequest is deprecated and obsolete.

搜尋了一下網路找到「WebRequest、WebClient 和 ServicePoint 已淘汰
再檢查專案才發現 Console App 開到 .NET 8 了...唉~~~常常回個話就忘了要幹的事...Orz
放是再開了.NET Framework 4.7 及 4.8 的專案,果然 WebRequest.Create(string) 就沒有過時提示了。

接下來照著規劃改寫...耶...不出意外又出意外了,原專案程式碼幾乎沒有例外處理,而且改參數取得的資料竟然有濾不掉的控制字元!!!



結果搞了 2 天才把這簡單任務(老電影動作戲好看,雖然劇情有點瞎...)完成。

結束後對 WebRequest 為什麼被棄用,以及官方要改用 HTTPClient 做了些整理,簡單說明如下:

  • .NET 6 後棄用 WebRequest 並建議改用 HTTPClient。
  • 主要差異是:WebRequest 是基於同步操作,而 HttpClient 支援非同步且效能較高。

PS. 若是用 PostMan Call WebAPI 或 WebService 並且產生 C# Code,印象中老早也提供 HttpClient 的範例了。

本文同步發表至我的Blog


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言