0

我阅读了 Salesforce Chatter REST API 的文档并开始用 c# 实现代码。请参见以下代码:

System.Net.WebRequest req = System.Net.WebRequest.Create(URI);
        req.Method = "POST";
        req.Headers.Add("Authorization: OAuth " + accessToken);
        req.ContentType = "application/x-www-form-urlencoded";
        string par = 
               "fileName=" + fileName +
            "&feedItemFileUpload="                
           + @"D:\\MyFiles\\NewTextDocument.txt" +                  
                     "&desc=" + desc+
                     "&text=" + text;

        byte[] byteArray = Encoding.UTF8.GetBytes(par);
        req.ContentLength = byteArray.Length;
        Stream dataStream = req.GetRequestStream();
        dataStream.Write(byteArray, 0, byteArray.Length);
        dataStream.Close();

        System.Net.WebResponse resp = req.GetResponse();

我在响应时出现 gettig 错误 远程服务器返回错误:(400)错误请求。

如果我看到错误响应,我收到以下消息:

请指定要上传的文件。输入文件的路径,或使用“浏览”按钮在本地文件系统中找到它。

我已经定义了文件路径和名称。我尝试在路径字符串之前使用和不使用 @ 符号,但得到相同的错误。让我知道是否缺少任何东西。

4

1 回答 1

2

您可以轻松地使用 Fiddler 来查看发生了什么。

您正在发布一个简单的表单,其中fileNamefeedItemFileUpload就像desc和一样text,换句话说,就是简单的文本

您需要做的是将文件作为流发送。

我可以看到您正在使用Hanselman 的代码,但这仅适用于文本参数

有关将其用于文件的更多信息,请参阅此答案

使用 HTTPWebrequest (multipart/form-data) 上传文件

于 2011-09-05T07:20:23.260 回答