Загрузка файлов с помощью Chatter REST API

Я прочитал документацию по REST API Salesforce Chatter и начал реализовывать код на 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) Неверный запрос.

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

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

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


person Brij    schedule 05.09.2011    source источник


Ответы (1)


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

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

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

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

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

Загрузить файлы с помощью HTTPWebrequest (multipart/form-data)

person balexandre    schedule 05.09.2011
comment
Я передал содержимое файла, но по-прежнему получаю ту же ошибку...salesforce.com/ нас/разработчик/документы/chatterapipre/ - person Brij; 08.09.2011
comment
на странице 37 этого документа указано, что вам нужно использовать JSON или XML, плюс они указывают, что вам нужно использовать multipart/form-data и в вашем например, вы используете application/x-www-form-urlencoded... вы тоже не используете! Как я вижу, вы не очень хорошо знакомы с использованием Сервисов, я бы порекомендовал вам обратиться за помощью к Sales Force, поскольку вы, вероятно, являетесь платным заказчиком / разработчиком. - person balexandre; 08.09.2011
comment
Мне нужно преобразовать следующий код Java в С# github .com/developerforce/Chatter-REST-API/wiki/ - person Brij; 08.09.2011
comment
Затем создайте новый вопрос и задайте этот вопрос напрямую, будьте добры, как спросить, или он будет закрыт наверняка, если вы просто скажете, можете ли вы, ребята, помочь мне преобразовать это в С#... - person balexandre; 08.09.2011