Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 带标头的Web服务_C# - Fatal编程技术网

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))

我正在挑选一个我同事制作的原型。不幸的是,我对C#和web服务完全不了解。服务中的一种方法如下所示:

    [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