C# 带标头的Web服务
我正在挑选一个我同事制作的原型。不幸的是,我对C#和web服务完全不了解。服务中的一种方法如下所示:C# 带标头的Web服务,c#,C#,我正在挑选一个我同事制作的原型。不幸的是,我对C#和web服务完全不了解。服务中的一种方法如下所示: [WebGet(UriTemplate = "GetTestData/{file}")] public Stream GetTestData(string file) { string fileName = "\\filePath" + file; if (File.Exists(fileName))
[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;
}
当我从我的设备键入URL时,如
http://filepath/myFile1.txt
然后我得到myFile1.txt。她说这是休息服务。有没有一种简单的方法可以添加标题,这样我就可以一次向设备发送所有数据
就像在我可以要求的设备上一样
http://filePath/myFiles
然后获取myFile1-myFile5.txt?现在,粗略的实现是我必须单独请求每个文件。让服务器负责发送数据包似乎更好,对吗?还是说这破坏了她的休息服务?谢谢
有没有一个简单的方法来添加标题,这样我就可以发送
一次安装所有数据
我不太清楚你在这里是什么意思,我想多了解一些情况会有帮助。如果客户端(设备)能够接受包含多个文件的响应,并且这是一个常见的用例,那么rest资源可以返回多个文件。例如,您可以为:http://filePath/myFiles
像这样:
[WebGet(UriTemplate = "myFiles")]
public Stream GetAllTestData()
{
// get all files, merge into stream and return.
}
另外,在您提供的示例中,为了更加RESTful,内容类型应该是“text/plain”而不是“text/.txt”,并且当找不到文件时,应该引发一个带有404状态代码的WebException,而不是返回null