必要に応じてURLにスキームを追加
2023-09-08 17:16:45
質問
文字列からUriを作成するには、次のようにします。
Uri u = new Uri("example.com");
しかし、問題は(上記のような)文字列がプロトコルを含んでいない場合、例外が発生します: "
Invalid URI: The format of the URI could not be determined.
という例外が発生します。
例外を回避するためには、以下のように文字列をプロトコルで保護する必要があります。
Uri u = new Uri("http://example.com");
しかし、urlを入力とした場合、プロトコルが欠落していたらどのように追加するのでしょうか?
つまり、いくつかのIndexOf/Substring操作は別として?
何かエレガントで高速なもの?
どのように解決するのですか?
また
UriBuilder
:
public static Uri GetUri(this string s)
{
return new UriBuilder(s).Uri;
}
MSDNからの備考。
このコンストラクタは、UriBuilder クラスの新しいインスタンスを、uri で指定されたように Fragment, Host, Path, Port, Query, Scheme, および Uri プロパティを設定した状態で初期化します。
uri がスキームを指定しない場合、スキームのデフォルトは "http:" になります。
関連
-
[解決済み】トランスポート接続からデータを読み取れない:既存の接続は、リモートホストによって強制的に閉じられました。
-
[解決済み] 'IEnumerable<SelectListItem>' 型の ViewData アイテムで、キーが国であるものは存在しない。
-
[解決済み】値をNULLにすることはできません。パラメータ名:source
-
[解決済み】ランダムなブーリアンを生成する最速の方法
-
[解決済み] 2つのリストを結合する
-
[解決済み】データが存在しないのに読み込もうとする試みが無効である
-
[解決済み] URI、URL、URNの違いは何ですか?
-
[解決済み] .NET String.Format()で数値の千の位にカンマを追加する
-
[解決済み】文字列が有効なHTTP URLであるかどうかを確認する方法は?
-
[解決済み】なぜJsonRequestBehaviorが必要なのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】WebForms UnobtrusiveValidationModeは、jqueryのScriptResourceMappingを必要とする
-
[解決済み】ASP.NET Core Dependency Injectionのエラーです。アクティブ化しようとしているときに、タイプのサービスを解決できません。
-
[解決済み】統合マネージドパイプラインモードで適用されないASP.NETの設定が検出された
-
[解決済み】C#はJavaのcharAt()と同等?)
-
[解決済み】C# ASP.NET使用時に「WebClientのリクエスト中に例外が発生しました。
-
[解決済み】バックスラッシュを含むパス文字列のエスケープシーケンスが認識されない件
-
[解決済み】MetadataException: 指定されたメタデータ・リソースをロードできない
-
[解決済み】Visual studio 2019がデバッグ時にフリーズする件
-
[解決済み】Swashbuckle/Swagger + ASP.Net Core: "Failed to load API definition" (API定義の読み込みに失敗しました
-
[解決済み】プロセスが実行されているかどうかを知るには?