2014-12-10 2 views
-2

URL을 참조해야하는 C#을 사용하여 모듈을 생성 중입니다. 그래서 여기에 2 개의 예제 URL이 있습니다.URL에서 C의 부분을 얻는 방법 #

http://www.website.com/ProductDetail/tabid/86/rvdsfpid/1gb-dual-port-iscsi-8660/rvdsfmfid/qlogic-174/Default.aspx

& &

http://www.website.com/ProductDetail/tabid/86/rvdsfpid/49950/default.aspx

이제 내가의 URL에서 모두 필요한 것은 첫 번째 경우에 두 번째 경우는 49950. I는 변경할 수 없습니다입니다 8660 &있는 제품 ID입니다 이러한 URls가 생성되는 방식. 가장 쉬운 방법은

http://www.website.com/ProductDetail/tabid/86/default.aspx?rvdsfpid=49950 그리고 나서 다음과 같은 일을 할 수 있었고 쉽게 할 수있었습니다.

string Pid= Request.Querystring["rvdsfpid"]; 

그러나 내가 그나마 때문에 내가 URL을 잡을 만 제품 ID를 가져올 수있는 방법을 URL이 generatyed되는 방식에 대한 제어 할 수 있습니다.

+0

첫 번째 예제와 같은 URL이 주어지면 어떤 부분이 제품 ID인지 어떻게 알 수 있습니까? –

+0

검색된 URL의 상대 위치는 두 예제에서 모두 동일합니다. "www.website.com/ProductDetail/tabid/86/rvdsfpid/"에서 시작하여 다음 "/"로 끝나는 블록에 있습니다 문자열로 부분은 아무런 문제가되지 않지만,이 예제에서 찾고있는 ID가이 블록에 있고 두 번째 예제에는 찾고있는 ID와 걱정하지 않는 데이터가 있으므로 어떻게해야합니까? 관심있는 데이터를 알고 계신가요? –

답변

2

전달되는 URL 형식이라고 가정하면 할 수있는 일이 없습니다. 전체 URL을 가져온 다음 분할해야합니다. 여기에 기본이 있습니다. 거기에 몇 가지 추가 수표와 물건을 추가해야합니다.

string url = "http://www.website.com/ProductDetail/tabid/86/rvdsfpid/1gb-dual-port-iscsi-8660/rvdsfmfid/qlogic-174/Default.aspx" 
//string url = "http://www.website.com/ProductDetail/tabid/86/rvdsfpid/49950/default.aspx"; 

url = url.Replace("http://", ""); //get rid of that, add code to check for https? 
string[] x = url.Split('/'); 
string productCode = x[5]; //assuming the product code is always the 6th item in the array! 

string code = ""; 
if (productCode.IndexOf("-") > -1) 
{ 
    code = productCode.Substring(productCode.LastIndexOf("-")+1); 
} 
else 
{ 
    code = productCode; 
} 
+0

훌륭해 .... 나는이 10 회 upvote 수 있으면 좋겠다. – MarsOne