일부 첨부 파일 데이터를 얻기 위해 GET을 수행하는 REST 웹 서비스를 호출하고있다. 매개 변수는 SRNumber, External_Id, attachmentId 및 attachmentName입니다. 브라우저에서 작동하는 특정 호출 URL이 있지만 코드를 통해 서비스를 호출 할 때는 작동하지 않습니다. 특히 하나 내가 시험은 다음과 같은 매개 변수가있어 :브라우저에서 REST 웹 서비스를 호출하면 코드가 달라진다.
- SRNumber을/2012 = 1000
- 외부 ID = USERID7/27 오전 10시 43분 0초
- attachmentId = 1 2H1USPQ
- ATTACHMENTNAME = 파일 이름은 여기
여기 URL 인코딩 된 매개 변수로 포맷 된 URL입니다 :
에 http : // base을/서비스/CHD/Service_Record_Attachment_Query/SRNumber/1000/EXTERNAL_ID/USERID7 % 2F27 % 2F2012 %의 2,010퍼센트 3A43 % 3A00 %의 20AM/attachmentId/1-2H1USPQ/attachmentName/파일 % 20name % 20goes % 20here/
코드를 통해 GET을 시도하면 오류가 발생합니다. 웹 서비스가 URL 인코딩 된 '/'문자를 URL의 구분 기호 인 것처럼 읽는 것으로 나타납니다 (문자열이 작성되었을 때 External_Id의 '/'가 URL 인코딩되었음을 확인하는 코드를 밟았습니다. .)
여기에 내가 빌드에게 URL 문자열 사용하고 코드입니다 : 내가 얻을 다음
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(requestURL);
: 요청 문자열을 구축 한 후
requestURL = ConfigurationManager.AppSettings["Server"] +
ConfigurationManager.AppSettings["Service"] +
"Service_Record_Attachment_Query/SRNumber/" +
System.Uri.EscapeDataString(SRNumber) + "/External_Id/" +
(ExternalID.Equals(null) ? "" : System.Uri.EscapeDataString(ExternalID)) +
"/attachmentId/" + System.Uri.EscapeDataString(AttachmentID) +
"/attachmentName/" + System.Uri.EscapeDataString(AttachmentName) + "/";
을, 나는 HttpWebRequest를을 만들 것을 사용 첨부 파일이 존재하지 않는다고 말하는 오류는 'USERID7'만 검색하기 때문에 "라고 표시하고 나머지 첨부 파일 이름은 제외합니다.
내 코드에서 '/'문자가 구분 기호로 해석 될 수있는 오류가 있습니까? 브라우저에 호출 URL을 넣을 때 성공한 응답을 반환하는 이유를 이해할 수 없지만 코드를 통해 동일한 호출 URL이 오류를 반환합니다.
대상 웹 서버, IIS, Apache는 무엇입니까? –
@CarlosLande, 대상 웹 서버는 IBM HTTP Server입니다. – Poosh