C# 使用HttpWebRequest上载带有PUT的文件

C# 使用HttpWebRequest上载带有PUT的文件,c#,httpwebrequest,C#,Httpwebrequest,我如何使用HttpWebRequest执行PUT请求以上载文件,同时知道我希望通过同一请求传递其他信息 我要传递给请求的对象: public class product { public int Id { get; set; } public string Name { get; set; } public string DescriptionFilePath { get; set; } } 请求URL: 谢谢大家! 试试看

我如何使用HttpWebRequest执行PUT请求以上载文件,同时知道我希望通过同一请求传递其他信息

我要传递给请求的对象:

 public class product
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public string DescriptionFilePath { get; set; }
    }
请求URL:

谢谢大家!

试试看

public HttpWebResponse SendRequest(Product product){

    //create the request with the url
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://api.mydomain.com/upload");


    //set the put method
    request.method = "PUT";


    //serialize the product
    JavascriptSerializer serializer = new JavascriptSerializer();
    var body = serializer.Setialize(product);

    //write the serialized product to the request
    using(StreamWriter writer = new StreamWriter(request.GetRequestStream())){
        writer.write(body);
    }

    //execute the request and return the response
    return (HttpWebResponse) request.getResponse();
}
发送请求。 如果需要检索响应数据

    public string RetrieveResponseData(HttpWebResponse response){
       var result;
       using StreamReader reader = new StreamReader(response.GetResponseStream()){
          result = reader.ReadToEnd();
       }
       return result;
    }

上传文件部分在哪里?文件的路径位于DescriptionFilePath属性中。文件内容也必须转换为字节?只要在将其传递给SendRequest函数之前设置值,它就应该位于产品内部。这里的第一个函数:SendRequest获取一个产品对象,然后将其序列化以与请求一起发送,传递给该函数的产品对象内的所有信息都将在请求中发送。