当我尝试上传images/videos
来facebook
使用facebook API
.在facebook API
给出例外如下图所示
"One or more errors occurred.System.IO.IOException: Unable to write data to the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)
--- End of inner exception stack trace ---
at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.Security._SslStream.StartWriting(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security._SslStream.ProcessWrite(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.ConnectStream.InternalWrite(Boolean async, Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state)
at System.Net.ConnectStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at Facebook.FacebookClient.<>c__DisplayClass6.<ApiAsync>b__4(Object o, OpenWriteCompletedEventArgs e) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)"
使用的代码是:
FacebookMediaStream facebookMediaObject = new FacebookMediaStream { FileName = fileName, ContentType = mimeType };
Stream stream = new MemoryStream(bytearray);
facebookMediaObject.SetValue(stream);
var postInfo = new Dictionary<string, object>();
postInfo.Add("message", fileName);
postInfo.Add("image", facebookMediaObject);
var tasktest = _fbClient.PostTaskAsync(String.Format("/{0}/photos", parentFolderID), postInfo);
tasktest.Wait();
facebookMediaObject.Dispose();
stream.Dispose();
查看此Prabir的博客
var fb = new FacebookClient("access_token");
dynamic parameters = new ExpandoObject();
parameters.source = new FacebookMediaObject { ContentType = "video/3gpp", FileName = "video.3gp" }.SetValue(File.ReadAllBytes(@"c:\video.3gp"));
parameters.title = "video title";
parameters.description = "video description";
dynamic result = fb.Post("/me/videos", parameters);
Console.WriteLine(result);
When i try to upload images/videos
to facebook
using facebook API
. The facebook API
gives exception shown as below
"One or more errors occurred.System.IO.IOException: Unable to write data to the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)
--- End of inner exception stack trace ---
at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.Security._SslStream.StartWriting(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security._SslStream.ProcessWrite(Byte[] buffer, Int32 offset, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.ConnectStream.InternalWrite(Boolean async, Byte[] buffer, Int32 offset, Int32 size, AsyncCallback callback, Object state)
at System.Net.ConnectStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at Facebook.FacebookClient.<>c__DisplayClass6.<ApiAsync>b__4(Object o, OpenWriteCompletedEventArgs e) at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)"
The code used is :
FacebookMediaStream facebookMediaObject = new FacebookMediaStream { FileName = fileName, ContentType = mimeType };
Stream stream = new MemoryStream(bytearray);
facebookMediaObject.SetValue(stream);
var postInfo = new Dictionary<string, object>();
postInfo.Add("message", fileName);
postInfo.Add("image", facebookMediaObject);
var tasktest = _fbClient.PostTaskAsync(String.Format("/{0}/photos", parentFolderID), postInfo);
tasktest.Wait();
facebookMediaObject.Dispose();
stream.Dispose();
Check this Prabir's Blog
var fb = new FacebookClient("access_token");
dynamic parameters = new ExpandoObject();
parameters.source = new FacebookMediaObject { ContentType = "video/3gpp", FileName = "video.3gp" }.SetValue(File.ReadAllBytes(@"c:\video.3gp"));
parameters.title = "video title";
parameters.description = "video description";
dynamic result = fb.Post("/me/videos", parameters);
Console.WriteLine(result);
本人是.net程序员,因为英语不行,使用工具翻译,希望对有需要的人有所帮助
如果本文质量不好,还请谅解,毕竟这些操作还是比较费时的,英语较好的可以看原文