I believe this was answered in another post. Please make sure that during login you are passing the 'fileXfer' clientCapability
Hello,
I am using file transfer API in c# desktop appliaction.I did all the step which is described in API documents.After getting file receive notification, I send the actual data of the file that time [b ]Error 500 Service Error - Invalid or missing token[/b] is comes.
code :-
string aYahooContactID = "xyz";
string sendFile_realm = relayIP + "/relay";
string url = "http://" + sendFile_realm + "?&token=" + objFile.Token + "&sender=" + primaryLoginId + "&receiver=" + aYahooContactID + "&sid=" +sessionId+ "&oauth_consumer_key=" + oauth_consumer_key + "&oauth_signature_method=" + oauth_signature_method + "&oauth_nonce=" + oauth_nonce + "&oauth_timestamp=" + oauth_timestamp + "&oauth_signature=" + oauth_signature + "&oauth_version=" + oauth_version + "&oauth_token=" + oauth_token;
byte[] fileArr = GetFileByteArray(usersFile);
UploadFile(url, fileArr);
private byte[] GetFileByteArray(string filename)
{
FileStream oFileStream = new FileStream(filename, FileMode.Open, FileAccess.Read);
//Create a byte array of file size.
byte[] FileByteArrayData = new byte[oFileStream.Length];
// Read file in bytes from stream into the byte array
oFileStream.Read(FileByteArrayData, 0, System.Convert.ToInt32(oFileStream.Length));
// Close the File Stream
oFileStream.Close();
return FileByteArrayData; //return the byte data
}
public string UploadFile(string URL, byte[] FileData)
{
string Response = null;
HttpWebRequest WebReq = null;
HttpWebResponse WebRes = null;
StreamReader StreamResponseReader = null;
Stream requestStream = null;
try
{
WebReq = (HttpWebRequest)WebRequest.Create(URL);
WebReq.Method = "POST";
WebReq.Accept = "*/*";
// WebReq.Connection = "Close";
WebReq.AllowAutoRedirect = false;
// WebReq.AllowWriteStreamBuffering = true;
WebReq.ContentType = "text/html";// "binary/octet-stream";
WebReq.ContentLength = FileData.Length;
WebReq.UserAgent = "Mozilla/5.0";
requestStream = WebReq.GetRequestStream();
requestStream.Write(FileData, 0, FileData.Length);
requestStream.Flush();
requestStream.Close();
WebRes = (HttpWebResponse)WebReq.GetResponse();
StreamResponseReader = new StreamReader(WebRes.GetResponseStream(), Encoding.UTF8);
Response = StreamResponseReader.ReadToEnd();
Notify();
}
catch (WebException ex)
{
MessageBox.Show(ex.Message.ToString());
Console.WriteLine(ex.Message.ToString());
}
finally
{
if (WebReq != null)
{
WebReq.Abort();
WebReq = null;
}
if (WebRes != null)
{
WebRes.Close();
WebRes = null;
}
if (StreamResponseReader != null)
{
StreamResponseReader.Close();
StreamResponseReader = null;
}
if (requestStream != null)
{
requestStream = null;
}
}
return Response;
}
please guide me.
Thanks