无法理解 POST 请求格式

Can not understand POST request Format

这些是本文中的几行https://developer.amazon.com/public/apis/experience/cloud-drive/content/nodes

我想使用这个说明上传视频

上传文件 上传文件内容及其元数据信息。

POST : {{contentUrl}}/nodes?suppress={suppress}

抑制:(可选)

重复数据删除:上传时禁用重复检查 Body 参数:

Multi-form部分

------------元数据------------

名称(必填):文件名。最多 256 个字符。 种类(必填):"FILE" 标签(可选):被索引的额外信息。例如,该值可以是 "PHOTO" properties(可选):要为文件添加的属性列表。 parents(可选):parent ID 列表。如果未提供 parent 文件夹,则文件将放置在默认根文件夹中。 --------内容------------

文件字节数

示例请求:

POST /cdproxy/nodes?localId=testPhoto HTTP/1.1 主持人:content-na.drive.amazonaws.com 授权:不记名 Atza|IQEBLjAsAhReYeezFcFdYzqrFOJGv3EG

----WebKitFormBoundaryE19zNvXGzXaLvS5C Content-Disposition: form-data;姓名="metadata"

{"name":"fooo.jpg","kind":"FILE"} ----WebKitFormBoundaryE19zNvXGzXaLvS5C Content-Disposition: form-data;名字="content"; 文件名="db5df4870e4e4b6cbf42727fd434701a.jpg" Content-Type: image/jpeg

----WebKitFormBoundaryE19zNvXGzXaLvS5C

cURL 请求:

curl -v -X POST --form 'metadata={"name":"testVideo1","kind":"FILE"}' --表格 'content=@sample_iTunes.mp4' 'https://content-na.drive.amazonaws.com/cdproxy/nodes?localId=testVideo1&suppress=deduplication' --header》授权:不记名 Atza|IQEBLjAsAhQ5zx7pKp9PCgCy6T1JkQjHHOEzpwIUQM

我用c#写了下面的代码 //文件名1:来自电脑的文件 //要在亚马逊云上命名的文件名2:File。

   if (AccessCode == null)
        {
            return ;
        }
        WebRequest request =                 WebRequest.Create(EndPointUrl+"//+&suppress=deduplication'");
        request.Method = "POST";
        string code = "Bearer " + AccessCode;
        request.Headers.Add("Authorization", code);
        string postData =@"Content-Disposition: form-data; name=""metadata""   {""name"":"""+FileName1+@""",""kind"":""+FILE""}
        Content-Disposition: form-data; name=""content"";
        filename="""+FileName2+@"""
        Content-Type: video/wmv";
        byte[] byteArray = Encoding.UTF8.GetBytes(postData);
        request.ContentType = "application/x-www-form-urlencoded";
        request.ContentLength = byteArray.Length;
        Stream dataStream = request.GetRequestStream();
        dataStream.Write(byteArray, 0, byteArray.Length);
        dataStream.Close();
        WebResponse response = request.GetResponse();
        Console.WriteLine(((HttpWebResponse)response).StatusDescription);
        dataStream = response.GetResponseStream();
        StreamReader reader = new StreamReader(dataStream);
        string responseFromServer = reader.ReadToEnd();
        Console.WriteLine(responseFromServer);
        reader.Close();
        dataStream.Close();
        response.Close();        

问题是我无法正确翻译它。它给出了 404 错误。

{"message":"Resource does not exist."}

请帮助我理解它。

这是一个正常的 multipart/form-data POST 请求,第一个参数值是 Stringified JSON 对象,第二个是图像文件。

请看一下:

那你可以

NameValueCollection nvc = new NameValueCollection();
nvc.Add("metadata", "{\"name\":\"fooo.jpg\",\"kind\":\"FILE\"}");
HttpUploadFile("THE_URL_HERE", @"C:\test\fooo.jpg", "content", "image/jpeg", nvc);