Exemple #1
0
        private Multipart.Part getDefaultField()
        {
            var part = new Multipart.Part("SomeField");

            part.Content = "Field's value";
            return(part);
        }
Exemple #2
0
        public async Task EchoBuffer_POST_AzosMultipart()
        {
            var toSend = new byte[] { 1, 2, 3, 255, 254, 253 };

            var part = new Multipart.Part("buffer")
            {
                Content     = toSend,
                FileName    = "file.bin",
                ContentType = ContentType.BINARY
            };

            var multipart = new Multipart(new [] { part }).Encode();

            var content = new ByteArrayContent(multipart.Buffer, 0, (int)multipart.Length);

            content.Headers.Add(WebConsts.HTTP_HDR_CONTENT_TYPE, ContentType.FORM_MULTIPART_ENCODED);

            var response = await Client.PostAsync("echobuffer", content);

            Aver.IsTrue(HttpStatusCode.OK == response.StatusCode);

            var got = await response.Content.ReadAsByteArrayAsync();

            Aver.IsNotNull(got);

            Aver.IsTrue(toSend.MemBufferEquals(got));
        }
Exemple #3
0
        private Multipart.Part getDefaultFile()
        {
            var part = new Multipart.Part("SomeFile");

            part.Content     = BYTES;
            part.FileName    = "five_numbers.dat";
            part.ContentType = "application/octet-stream";
            return(part);
        }
Exemple #4
0
 public void TryCreatePart_NullName()
 {
     try
     {
         var part = new Multipart.Part(null);
         Assert.Fail("Invalid name!");
     }
     catch (Exception e)
     {
         Assert.IsTrue(e.Message.Contains(NFX.Web.StringConsts.MULTIPART_PART_EMPTY_NAME_ERROR));
     }
 }
Exemple #5
0
 public void TryCreatePart_NullName()
 {
     try
     {
         var part = new Multipart.Part(null);
         Aver.Fail("Invalid name!");
     }
     catch (Exception e)
     {
         Conout.Write(e.ToMessageWithType());
         Aver.IsTrue(e.Message.Contains(StringConsts.MULTIPART_PART_EMPTY_NAME_ERROR));
     }
 }
Exemple #6
0
        public void MissCharset1251()
        {
            var part = new Multipart.Part("field");

            part.FileName    = "text";
            part.ContentType = "Content-type: text/plain";
            part.Content     = Encoding.GetEncoding(1251).GetBytes("Значение");

            var mpE = new Multipart(new Multipart.Part[] { part });
            var enc = mpE.Encode();

            var boundary = enc.Boundary;
            var mpD      = Multipart.ReadFromBytes(enc.Buffer, ref boundary);

            Assert.AreNotEqual("Значение", mpD.Parts["field"].Content);
        }
Exemple #7
0
        public void WithoutCharset()
        {
            var part = new Multipart.Part("field");

            part.FileName    = "text";
            part.ContentType = "Content-type: text/plain";
            part.Content     = Encoding.UTF8.GetBytes("Значение of the word is გთხოვთ Οὐχὶ");

            var mpE = new Multipart(new Multipart.Part[] { part });
            var enc = mpE.Encode();

            var boundary = enc.Boundary;
            var mpD      = Multipart.ReadFromBytes(enc.Buffer, ref boundary);

            Aver.AreObjectsEqual("Значение of the word is გთხოვთ Οὐχὶ", mpD.Parts["field"].Content);
        }
Exemple #8
0
        public void EncodeDecode_OneField_Enc1251()
        {
            var encoding = Encoding.GetEncoding(1251);
            var part     = new Multipart.Part("Field");

            part.Content = "Значение";

            var mpE     = new Multipart(new Multipart.Part[] { part });
            var encCont = mpE.Encode(encoding);

            string boundary = null;
            var    mpD      = Multipart.ReadFromBytes(encCont.Buffer, ref boundary, encoding);

            Assert.AreEqual(encCont.Boundary, boundary);
            Assert.AreEqual(encCont.Encoding, encoding);
            Assert.AreEqual(1, mpD.Parts.Count);
            Assert.AreEqual(part.Content.AsString(), mpD.Parts[part.Name].Content.AsString());
            Assert.IsNull(mpD.Parts[part.Name].ContentType);
            Assert.IsNull(mpD.Parts[part.Name].FileName);
        }
Exemple #9
0
        public void EncodeDecode_OneField_UTF8()
        {
            var encoding = Encoding.UTF8;
            var part     = new Multipart.Part("Field");

            part.Content = "Значение of the word is გთხოვთ ახლავე Οὐχὶ ταὐτὰ παρίσταταί μοι";

            var mpE     = new Multipart(new Multipart.Part[] { part });
            var encCont = mpE.Encode(encoding);

            string boundary = null;
            var    mpD      = Multipart.ReadFromBytes(encCont.Buffer, ref boundary, encoding);

            Aver.AreEqual(encCont.Boundary, boundary);
            Aver.AreObjectsEqual(encCont.Encoding, encoding);
            Aver.AreEqual(1, mpD.Parts.Count);
            Aver.AreEqual(part.Content.AsString(), mpD.Parts[part.Name].Content.AsString());
            Aver.IsNull(mpD.Parts[part.Name].ContentType);
            Aver.IsNull(mpD.Parts[part.Name].FileName);
        }
Exemple #10
0
        //private void doSendWithoutAttachments(Message msg, MessageAddresses addresses)
        //{
        //  var request = new WebClient.RequestParams(this)
        //  {
        //    Method = HTTPRequestMethod.POST,
        //    BodyParameters = new Dictionary<string, string>()
        //  };

        //  var auth = new HttpBasicAuthenticationHelper(API_USER_NAME, AuthorizationKey);
        //  auth.AddAuthHeader(ref request);

        //  addParameter(request.BodyParameters, MAIL_PARAM_FROM, addresses.From);
        //  addParameter(request.BodyParameters, MAIL_PARAM_TO, addresses.To);

        //  if (addresses.CC.IsNotNullOrWhiteSpace())
        //      addParameter(request.BodyParameters, MAIL_PARAM_CC, addresses.CC);

        //  if (addresses.BCC.IsNotNullOrWhiteSpace())
        //    addParameter(request.BodyParameters, MAIL_PARAM_BCC, addresses.BCC);

        //  if (addresses.ReplyTo.IsNotNullOrWhiteSpace())
        //    addParameter(request.BodyParameters, MAIL_PARAM_REPLY_TO, addresses.ReplyTo);

        //  if (msg.Subject.IsNotNullOrWhiteSpace())
        //    addParameter(request.BodyParameters, MAIL_PARAM_SUBJECT, msg.Subject);

        //  if (msg.Body.IsNotNullOrWhiteSpace())
        //    addParameter(request.BodyParameters, MAIL_PARAM_TEXT, msg.Body);

        //  if (msg.RichBody.IsNotNullOrWhiteSpace())
        //    addParameter(request.BodyParameters, MAIL_PARAM_HTML, msg.RichBody);

        //  if (TestMode)
        //    request.BodyParameters.Add(API_PARAM_TESTMODE, "yes");

        //  WebClient.GetString(ServiceUrl, request);
        //}

        private void doSendMultipart(Message msg, MessageAddresses addresses)
        {
            Multipart.Part part;

            var parts = new List <Multipart.Part>();

            part = new Multipart.Part(MAIL_PARAM_FROM)
            {
                ContentType = ContentType.TEXT,
                Content     = addresses.From
            };
            parts.Add(part);

            part = new Multipart.Part(MAIL_PARAM_TO)
            {
                ContentType = ContentType.TEXT,
                Content     = addresses.To
            };
            parts.Add(part);

            if (addresses.CC.IsNotNullOrWhiteSpace())
            {
                part = new Multipart.Part(MAIL_PARAM_CC)
                {
                    ContentType = ContentType.TEXT,
                    Content     = addresses.CC
                };
                parts.Add(part);
            }

            if (addresses.BCC.IsNotNullOrWhiteSpace())
            {
                part = new Multipart.Part(MAIL_PARAM_BCC)
                {
                    ContentType = ContentType.TEXT,
                    Content     = addresses.BCC
                };
                parts.Add(part);
            }

            if (addresses.ReplyTo.IsNotNullOrWhiteSpace())
            {
                part = new Multipart.Part(MAIL_PARAM_REPLY_TO)
                {
                    ContentType = ContentType.TEXT,
                    Content     = addresses.ReplyTo
                };
                parts.Add(part);
            }

            part = new Multipart.Part(MAIL_PARAM_SUBJECT)
            {
                ContentType = ContentType.TEXT,
                Content     = msg.Subject
            };
            parts.Add(part);

            part = new Multipart.Part(MAIL_PARAM_TEXT)
            {
                ContentType = ContentType.TEXT,
                Content     = msg.Body
            };
            parts.Add(part);

            part = new Multipart.Part(MAIL_PARAM_HTML)
            {
                ContentType = ContentType.HTML,
                Content     = msg.RichBody
            };
            parts.Add(part);

            if (TestMode)
            {
                part = new Multipart.Part(API_PARAM_TESTMODE)
                {
                    ContentType = ContentType.TEXT,
                    Content     = "yes"
                };
                parts.Add(part);
            }

            if (msg.Attachments != null)
            {
                foreach (var attachment in msg.Attachments.Where(a => a.Content != null))
                {
                    part = new Multipart.Part(MAIL_PARAM_ATTACHMENT)
                    {
                        ContentType = attachment.ContentType,
                        Content     = attachment.Content,
                        FileName    = attachment.Name
                    };
                    parts.Add(part);
                }
            }

            var mp  = new Multipart(parts);
            var enc = mp.Encode();

            var req = WebRequest.CreateHttp(ServiceUrl);

            req.Method        = "POST";
            req.ContentType   = ContentType.FORM_MULTIPART_ENCODED_BOUNDARY.Args(enc.Boundary);
            req.ContentLength = enc.Length;
            var auth = new HttpBasicAuthenticationHelper(API_USER_NAME, AuthorizationKey);

            auth.AddAuthHeader(req);

            using (var reqs = req.GetRequestStream())
            {
                reqs.Write(enc.Buffer, 0, (int)enc.Length);
                using (var resp = req.GetResponse()) { }
            }
        }