나는 webapp에 콜 아웃해야하는 C# 응용 프로그램을 작성 중입니다. System.Uri
을 사용하여 두 개의 URL을 결합하려고합니다. 기본 URL과 필요한 특정 웹 서비스의 상대 경로 (또는 많은 경로). 나는 한 곳에서 정의하고자하는 webappBackendURL
이라는 클래스 멤버를 가지고 있으며, 모든 빌드는 그곳에서부터 호출됩니다 (webappBackendURL
은 나의 예제처럼 자세히 정의되지 않았습니다).URL을 보존 된 쿼리 문자열 부분과 결합하는 방법은 무엇입니까?
System.Uri webappBackendURL = new System.Uri("http://example.com/");
System.Uri rpcURL = new System.Uri(webappBackendURL,"rpc/import");
// Result: http://example.com/rpc/import
그러나이 경우 webappBackendURL
에 쿼리 문자열이 포함되어 있으면 작동하지 않습니다.
System.Uri webappBackendURL = new System.Uri("http://example.com/?authtoken=0x0x0");
System.Uri rpcURL = new System.Uri(webappBackendURL,"rpc/import");
// Result: http://example.com/rpc/import <-- (query string lost)
URL을 결합하는 더 좋은 방법이 있습니까? .NET 라이브러리는 광범위하므로이 문제를 처리 할 수있는 기본 방법을 간과했을 수도 있습니다.
System.Uri webappBackendURL = new System.Uri("http://example.com/?authtoken=0x0x0");
System.Uri rpcURL = new System.Uri(webappBackendURL,"rpc/import?method=overwrite&runhooks=true");
// Result: http://example.com/rpc/import?authtoken=0x0x0&method=overwrite&runhooks=true
간단한 경로에서'Uri'을 만들려고 할 때'UriFormatException'을 쳤기 때문에'MergerUri'를 신뢰할 수 있다고 생각하지 않습니다. 나는 당신의 초기 제안을 방법으로 포장하려고 노력할지도 모른다. – jimp
죄송합니다. 먼저 테스트하지 않았습니다. 업데이트 된 버전이 작동하지만 결정한 내용과 유사합니다. – jfin3204