Загрузка файла с использованием Chatter REST API - PullRequest
0 голосов
/ 05 сентября 2011

Я прочитал документацию по 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();

Я получаю ошибку при ответе Удаленный сервер возвратил ошибку: (400) Неверный запрос.

Если я вижу ответ об ошибке, я получаю следующее сообщение:

Пожалуйста, укажите файл для загрузки. Введите путь к файлу или используйте кнопку \ "Обзор \", чтобы найти его в локальной файловой системе.

Я уже определил путь к файлу и имя. Я пробовал с и без знака @ перед строкой пути, но получил ту же ошибку. Дайте мне знать, если чего-то не хватает.

1 Ответ

2 голосов
/ 05 сентября 2011

Вы можете легко использовать Fiddler, чтобы увидеть, что происходит.

Вы публикуете простую форму, где fileName и feedItemFileUpload похожи на desc и text, другими словами, простой простой текст !

Что вам нужно сделать, это отправить файл в виде потока.

Я вижу, что вы используете код Гензельмана , но это только для текстовых параметров

для получения дополнительной информации об использовании его для файлов, см. этот ответ

Загрузка файлов с HTTPWebrequest (multipart / form-data)

...