Beispiel #1
0
 public void Multimedia(ClientSendTweet tweet, ClientMultimedia media)
 {
     if (OnMedia != null)
     {
         Application.Current.Dispatcher.BeginInvoke(OnMedia, new object[] { tweet, media });
     }
 }
Beispiel #2
0
 private void ResponseMultimeida(ClientSendTweet tweet, ClientMultimedia media)
 {
     if (tweet.ResponseMedia(media))
     {
         apiInstence.SendTweet(tweet);
     }
     else
     {
         SendMediaTweet(tweet);
     }
 }
 public bool ResponseMedia(ClientMultimedia media)
 {
     listMedia.Add(media);
     if (listMedia.Count == listBitmap?.Length)
     {
         for (int i = 0; i < listMedia.Count; i++)
         {
             parameter.media_ids += listMedia[i].media_id;
             parameter.media_ids += ",";
         }
         return(true);
     }
     else if (string.IsNullOrEmpty(multiPath) == false)
     {
         parameter.media_ids += media.media_id;
         parameter.media_ids += ",";
         return(true);
     }
     return(false);
 }
Beispiel #4
0
        public void SendMultimedia(PacketMediaUpload packet, ClientSendTweet tweet, Action <ClientSendTweet, ClientMultimedia> callback)
        {
            HttpWebRequest req     = (HttpWebRequest)WebRequest.Create(packet.url);
            TwitterRequest request = new TwitterRequest(req, packet);

            var boundary = Guid.NewGuid().ToString().Replace("-", string.Empty);

            req.ContentType = "multipart/form-data;encoding=utf-8;boundary=" + boundary;
            req.Method      = packet.method;
            req.Headers.Add("Authorization", OAuth.GetInstence().GetHeader(packet));

            boundary = "--" + boundary;

            try            //send!
            {
                using (Stream stream = req.GetRequestStream())
                    using (var writer = new StreamWriter(stream, Encoding.UTF8))
                    {
                        writer.NewLine = "\r\n";
                        writer.WriteLine(boundary);
                        writer.WriteLine("Content-Type: application/octet-stream");
                        writer.WriteLine($"Content-Disposition: form-data; name=\"media\"; filename=\"img{packet.extension}\"");
                        writer.WriteLine();
                        writer.Flush();

                        packet.mediaStream.Position = 0;
                        packet.mediaStream.CopyTo(stream);

                        writer.WriteLine();
                        writer.WriteLine(boundary + "--");
                        writer.Flush();
                    }
            }
            catch (WebException e)
            {
                using (Stream stream = e.Response?.GetResponseStream())
                {
                    if (stream == null)
                    {
                        return;
                    }
                    using (StreamReader srReadData = new StreamReader(stream, Encoding.Default))
                    {
                        string log = srReadData.ReadToEnd();
                        if (OnResponseError != null)
                        {
                            Application.Current.Dispatcher.BeginInvoke(OnResponseError, new object[] { packet, log });
                        }
                    }
                }
            }
            catch (Exception e)
            {
                packet.Dispose();
                App.SendException(e);
                return;
            }

            try            //Response!!!
            {
                using (WebResponse response = req.GetResponse())
                {
                    using (Stream stream = response.GetResponseStream())
                    {
                        if (stream == null)
                        {
                            return;
                        }
                        using (StreamReader streamRead = new StreamReader(stream))
                        {
                            string           json  = streamRead.ReadToEnd();
                            ClientMultimedia media = JsonConvert.DeserializeObject <ClientMultimedia>(json);
                            callback?.Invoke(tweet, media);
                        }
                    }
                }
            }
            catch (WebException e)
            {
                using (Stream stream = e.Response?.GetResponseStream())
                {
                    if (stream == null)
                    {
                        return;
                    }
                    using (StreamReader srReadData = new StreamReader(stream, Encoding.Default))
                    {
                        string log = srReadData.ReadToEnd();
                        if (OnResponseError != null)
                        {
                            Application.Current.Dispatcher.BeginInvoke(OnResponseError, new object[] { log });
                        }
                    }
                }
            }
            catch (Exception e)
            {
                App.SendException(e);
            }
            finally
            {
                packet.Dispose();
            }
        }