.NET - 프로토콜, 호스트 및 포트 가져오기
안으로 들어가는 간단한 방법이 있습니까?NET을 통해 현재 프로토콜, 호스트 및 포트를 신속하게 얻을 수 있습니까?예를 들어 다음 URL에 있는 경우:
http://www.mywebsite.com:80/pages/page1.aspx
반환해야 합니다.
http://www.mywebsite.com:80
사용할 수 있습니다.Request.Url.AbsoluteUri
완전한 URL을 얻기 위해, 그리고 나는 내가 사용할 수 있다는 것을 알고 있습니다.Request.Url.Authority
호스트와 포트를 가져오는 데 URL 문자열을 파싱하지 않고 프로토콜을 가져오는 가장 좋은 방법을 모르겠습니다.
좋은 의견이라도 있나?
비록 @Rick이 이 질문에 대해 받아들여진 답을 가지고 있지만, 실제로는 이름이 좋지 않은 방법을 사용하여 이를 수행하는 더 짧은 방법이 있습니다.
Uri url = new Uri("http://www.mywebsite.com:80/pages/page1.aspx");
string output = url.GetLeftPart(UriPartial.Authority);
할 수 있는 한 가지 방법이 있습니다.GetLeftPart()
,하지만.포트가 스키마의 기본 포트인 경우 해당 포트를 제거합니다.포트 80이 http의 기본 포트이기 때문에 출력은GetLeftPart()
위의 나의 예에서.http://www.mywebsite.com
.
포트 번호가 80이 아닌 경우 결과에 포함됩니다.
다음 (C#) 코드가 효과를 발휘해야 합니다.
Uri uri = new Uri("http://www.mywebsite.com:80/pages/page1.aspx");
string requested = uri.Scheme + Uri.SchemeDelimiter + uri.Host + ":" + uri.Port;
음 만약 당신이 이것을 Asp에서 하고 있다면.인터넷 또는 HttpContext에 액세스할 수 있습니다.현재의.보다 쉽고 일반적인 방법으로 구입할 수 있습니다.
var scheme = Request.Url.Scheme; // will get http, https, etc.
var host = Request.Url.Host; // will get www.mywebsite.com
var port = Request.Url.Port; // will get the port
var path = Request.Url.AbsolutePath; // should get the /pages/page1.aspx part, can't remember if it only get pages/page1.aspx
이것이 도움이 되길 바랍니다.:)
이를 위한 보다 체계적인 방법은 UriBuilder를 사용하는 것입니다.이렇게 하면 직접 문자열을 조작할 수 없습니다.
var builder = new UriBuilder(Request.Url.Scheme, Request.Url.Host, Request.Url.Port);
부탁한다.Url은 요청의 URI를 반환합니다.일단 그것을 손에 넣으면, 당신은 당신이 원하는 것을 거의 다 찾을 수 있습니다.프로토콜을 가져오려면 Scheme 속성을 호출합니다.
샘플:
Uri url = Request.Url;
string protocol = url.Scheme;
이게 도움이 되길 바랍니다.
더 짧은 방법이지만, 더 새로운 ASP가 필요할 수도 있습니다.네트:
string authority = Request.Url.GetComponents(UriComponents.SchemeAndServer,UriFormat.Unescaped)
URI 구성 요소 열거를 사용하여 포함할 URI의 구성 요소를 지정할 수 있습니다.
홀거의 대답과 매우 유사합니다.URL을 가져와야 하는 경우 다음과 같은 작업을 수행할 수 있습니다.
Uri uri = Context.Request.Url;
var scheme = uri.Scheme // returns http, https
var scheme2 = uri.Scheme + Uri.SchemeDelimiter; // returns http://, https://
var host = uri.Host; // return www.mywebsite.com
var port = uri.Port; // returns port number
URI 클래스는 제가 나열하지 않은 많은 방법을 제공합니다.
제 경우에는, 저는 그들을 붙잡아야 했습니다.LocalHost
와 함께Port Number
그래서 제가 한 일은 이렇습니다.
var Uri uri = Context.Request.Url;
var host = uri.Scheme + Uri.SchemeDelimiter + uri.Host + ":" + uri.Port;
성공적으로 붙잡은 것: http://localhost:12345
내 경우에는
Uri uri = new Uri("http://www.mywebsite.com:80/pages/page1.aspx");
string requested = uri.Scheme + Uri.SchemeDelimiter + uri.Authority;
얻을 수 있는 일
언급URL : https://stackoverflow.com/questions/21640/net-get-protocol-host-and-port
'programing' 카테고리의 다른 글
선호하는 바시쉐방("#!")은 무엇입니까? (0) | 2023.05.10 |
---|---|
작업이 시간 초과와 함께 완료될 때까지 비동기적으로 대기 (0) | 2023.05.10 |
좋은 질문입니다.NET 개발자는 대답할 수 있어야 합니까? (0) | 2023.05.10 |
SSIS Excel 가져오기 강제 적용 잘못된 열 유형 (0) | 2023.05.10 |
git reset --hard origin/master의 의미는 무엇입니까? (0) | 2023.05.10 |