如何从C#调用grails Web服务

时间:2010-10-06 18:28:51

标签: c# web-services grails

我有一个grails webservice,它将二进制文件作为参数。这基本上就是它的样子:

def index = {
    switch(request.method){
    case "POST":
    def uploadedFile = request.getFile('file')
    File f=new File('c:/dev/newfile.tar');
    uploadedFile.transferTo(f);
    //do something with f
    break
    }
}

为了测试这个,我使用curl - 就像这样:

curl -F file=@somefile.tar http://localhost:8080/MyWebS/fileWS

关键是为了让grails知道如何获取文件,我必须在curl命令中定义该文件=文件。

这如何转化为让C#调用同一个Web服务,并将其传递给文件。该文件会是什么样的?一个字节数组?

1 个答案:

答案 0 :(得分:2)

最简单的方法是使用WebClient.UploadFile重载之一:

new WebClient().UploadFile("http://localhost:8080/MyWebS/fileWS",
                           "somefile.tar");

如果您需要更多控制权,可以使用HttpWebRequest