URL Append (Custome URL Scheme)
URL의 기본에다가 추가로 파라미터를 결합하여 미리 규약된데이터를 넘기는 Query 구분을 추가하는 경우가 종종 있다.
Query 로 사용하는 일반적인 용도는 다음과 같다.
Tracking,
Recording,
Searching,
Identifying,
Paginating,
Translating,
Filtering,
Query가 포함된 URL을 확이해보면 다음과 같다.
https://drehzr.tistory.com/785?category=362808
Schema : https
Host : drehzr.tistroy.com
Path : /785
Query : ?category=362808
프로토콜 : // Scheme Host / Scheme Path ? Query String(키1=값1 & 키2=값2...)
우리는 대부분 URL을 Append 하는 과정에서는 Query가 추가된다고 생각하면 된다.
Append를 할 때는 단순하게 '+='로 결합을 해도 된다.
private void TestURL()
{
Uri.TryCreate($"https://drehzr.tistory.com/785", UriKind.Absolute, out var url);
UriBuilder defaultUri = new UriBuilder(url);
defaultUri.Query += $"category=362808";
Application.OpenURL(defaultUri.Uri.ToString());
}
. NET API 중 UriBuilder 사용해서 Query의 형식을 맞추기 위해서 (유효성 검사)를 포함한 코드이다.
public string GetAppendURL(string _url, string _append)
{
System.UriBuilder baseUri = new System.UriBuilder(_url);
string queryToAppend = _append;
if (baseUri.Query.Length == 0 || baseUri.Query == null)
{
baseUri.Query += queryToAppend.Replace('&','?');
}
else if (baseUri.Query.Length > 1)
{
baseUri.Query = baseUri.Query.Substring(1) + queryToAppend.Replace('?','&');
}
else
{
baseUri.Query += queryToAppend.Replace('?','&');
}
return baseUri.Uri.ToString();
}
Microsoft UriBuilder : [링크]
Microsoft UriBuilder.Query : [링크]
Microsoft Uri.TryCraete : [링크]
★☆☆☆☆
반응형
'개발 > 기본) 기본기' 카테고리의 다른 글
C#)DateTime Format (0) | 2022.10.23 |
---|---|
기본기).Net) IEquatable <T> 비교 (0) | 2022.10.13 |
기본기) Custom Exception (사용자 정의 예외) (0) | 2022.07.04 |
기본기) Null을 효과적으로 처리하기 위한 팁 (0) | 2022.05.31 |
기본기)c#) 다중 값 반환 (Return multiple value to a method) (0) | 2022.04.06 |
댓글