2010-02-09 2 views
2

에서 나는 방법합격 네트워크 경로가 URL

[OperationContract] 
[WebGet(UriTemplate = "acl/f={fullFileName}")] 
string GetACL(string fullFileName); 

fullFileName와 WCF 서비스를 만드는 오전은 네트워크 파일의 전체 경로 또는 호스트 파일입니다.

호스트는 webHttpBinding 및 동작 구성이있는 Windows 서비스입니다. 나는 ... 나는 시도

http://localhost/webservice/acl/f=[my network path here] 

같은 것을 사용하여 브라우저에서이 전화/ACL/F = 파일을 원하는 : // \ 서버 \ 공유 \ file.ext를 .../ACL/F = file : // c : \ file.ext

브라우저에서 "끝 점이 없습니다."라는 메시지가 나타납니다.

내가 .../acl/f = file.txt를 호출 할 수 있기 때문에이 파일이 작동한다는 것을 알았습니다. 파일을 찾을 수 없다는 것을 나타내는 서비스에서 적절한 응답을 받았습니다. 그래서 URI에서 anysort의 슬래시를 사용하지 않으면 메소드가 올바르게 호출됩니다.

이 내용에 대한 의견은 크게 부탁드립니다.

감사합니다, 핫메일에서 beezlerco ...

+0

슬래시 URL 인코딩을 시도 했습니까? –

+0

이 매개 변수를 get 매개 변수로 전달하고 있습니까? 예 : http : //yadda.com/yadda?f=path –

답변

0

나는 HttpUtility.UrlEncode을 찾고 있습니다.
(자세한 설명은 을 참조하십시오.)

+0

안녕하세요, 스콧 스미스 - 네, 여기는 webget입니다. 내 브라우저의 주소 표시 줄에서이 메서드를 호출하려고합니다. http : // localhost : port/webservice/acl/f = ???를 입력하려고합니다. 무엇이 적절한가요 ??? – Beezler

+0

Isaac Cambron, 네, % 2f 및 % 5c 인코딩을 시도했습니다. brownser는 webservice 호출을하지 못하면 적절한 슬래시로 대체합니다. 감사합니다. – Beezler

+0

C#에서 프로그래밍 방식으로 URL을 생성한다고 가정했습니다. 내가 게시 한 메서드는 get을 통해 매개 변수로 전달하는 것이 안전하도록 문자열을 인코딩합니다. 이 메소드의 대응 부분은 HttpUtility.UrlDecode입니다. 원래의 문자열을 재구성하는 데 사용할 수 있습니다. URL을 직접 입력하는 경우 손으로 적절한 대체물을 만들어야합니다. – kloffy

0

당신은뿐만 아니라 슬래시, 콜론, 기술적 기간을 인코딩 할 필요가있다.

  • \는 %이어야한다 5C
  • /% 2 층
  • 해야한다.
  • 퍼센트 2E해야한다 : 대부분의 다른 특수 문자 %의 3A

http://www.asciitable.com/을보고 '%'플러스 해당 테이블에 진수 열을 사용해야합니다.

관련 문제