File Upload using Chatter REST API
I read documentation of Salesforce Chatter REST API and started to implement code in c#. See following code:
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();
I am gettig error on response Th开发者_运维技巧e remote server returned an error: (400) Bad Request.
If i see response of error, i got following message:
Please specify a file to upload. Type in the path to the file, or use the \"Browse\" button to locate it in your local filesystem.
I have already defined the file path and name. I tried with and without @ sign before path string but getting same error. Let me know if anything is missing.
You can easily use Fiddler to see what's going on.
You are posting a simple form where fileName
and feedItemFileUpload
are just like desc
and text
, in other words, plain simple text!
What you need to do is send the file as a stream.
I can see that you're using Hanselman's code, but that's only for text parameters
for more information on using it for files, see this answer
Upload files with HTTPWebrequest (multipart/form-data)
精彩评论