2012-08-07 6 views
0

동료가 만든 프로토 타입을 가져 왔습니다. 저는 불행히도 C#과 웹 서비스를 담당하는 놈입니다. 내가헤더가있는 웹 서비스

http://filepath/myFile1.txt 

처럼 내 장치에서 URL을 입력하면

[WebGet(UriTemplate = "GetTestData/{file}")] 
    public Stream GetTestData(string file) 
    { 
     string fileName = 
      "\\filePath" + file; 
     if (File.Exists(fileName)) 
     { 
      FileStream stream = File.OpenRead(fileName); 
      if (WebOperationContext.Current != null) 
      { 
       WebOperationContext.Current.OutgoingResponse.ContentType = "text/.txt"; 
      } 
      return stream; 
     } 
     return null; 
    } 

그때 내가 myFile1.txt를 얻을 : 같은 서비스의 한 가지 방법이다. 그녀는 그것이 휴식 서비스라고 말했다. 여기에 헤더를 추가하는 쉬운 방법이 있나요? 그래서 모든 데이터를 한 번에 보낼 수 있습니까? 나는

http://filePath/myFiles 

의 장치처럼

를 요청할 수 있으며, myFile1-myFile5.txt를 얻을? 지금 당장의 미숙 한 구현은 각 파일을 개별적으로 요청해야한다는 것입니다. 서버가 패킷을 올바르게 전송할 책임이 있다고 생각하십니까? 아니면 그녀의 휴식 서비스를 망가 뜨리는거야? 감사!

답변

1

여기에 헤더를 추가하는 쉬운 방법이있어서 장치에 모든 데이터를 한 번에 보낼 수 있습니까?

내가 여기서 무엇을 의미하는지 잘 모르겠다. 조금 더 많은 문맥이 도움이 될 것이라고 생각한다. 클라이언트 (장치)가 여러 파일을 포함하는 응답을 수락 할 수 있고 이것이 일반적인 사용 사례라면 나머지 리소스는 여러 파일을 반환 할 수 있습니다. 과 같이 http://filePath/myFiles : 예를 들어, 당신을위한 추가 리소스를 구현할 수

[WebGet(UriTemplate = "myFiles")] 
public Stream GetAllTestData() 
{ 
    // get all files, merge into stream and return. 
} 

을 또한, 귀하가 제공 한 샘플에서, 더 편안하고 수, 컨텐츠 유형이 있어야한다 "텍스트/일반"없습니다 "텍스트/.txt "이며 파일이 발견되지 않을 때 null을 리턴하는 대신 404 상태 코드가있는 WebException이 발생해야합니다.