50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

بدست آوردن مقادیر در asp

با سلام

یک post حاوی مقدیر binery ارسال میشه به سایت.چطوری بدستوشن بسارم؟

پرسیده شده در 1398/02/11 توسط

6 پاسخ

0

دقیقاً مشکلتون از کجاست؟ میخوایید داخل سرور اطلاعات رو به صورت آرایه دریافت کنید؟

پاسخ در 1398/02/14 توسط
0

شما یه کاری کنید، آرایتون رو تبدیل به Base64 کنید:

var base64Text = Convert.ToBase64String(b);

بعد مقدار base64Text رو به وب سرویس ارسال کنید و سمت سرور دوباره بوسیله کد زیر رشته دریافتی رو به آرایه ای از بات ها تبدیل کنید:

var b = Convert.FromBase64String(base64Text);

تست کنید ببینید جواب میگیرید؟

پاسخ در 1398/02/15 توسط
0

سلام

مهندس نگاه کن یه خورده پیچیدست.من یه دستگاه الکترونیکی دارم که داده ها رو به صورت باینری میفرسته.

حالا چون امکان دستکاری دستگاه وجود نداره من باید داده های رو بگیرم و پارس کنم.داده ها به صورت زیر هستش.

فایل دودویی datalog_packet : این فایل حاوی مقادیر اندازه گیری شده توسط کلاینت برای کانال های مختلف

است.

فرمت نمونه ها:

12 بایت اول هر نمونه شامل مقادیر ordinal_number ، تاریخ و زمان اندازه گیری نمونه است:

 بایت 1 تا 4 : یک عدد صحیح چهار بایتی که مقدار آن برابر ordinal_number است.

 بایت 5 تا 6: یک عدد دو بایتی که مقدار "سال" به میلادی است.

 بایت 7: یک عدد یک بایتی که مقدار "ماه" به میلادی است.

 بایت 8: یک عدد یک بایتی که مقدار "روز" به میلادی است.

 بایت 9 : یک عدد یک بایتی که مقدار چندمین روز هفته است ) مقدار آن بین صفر تا شش است، معادل شنبه تا جمعه(

 بایت 10 : یک عدد یک بایتی که مقدار "ساعت" است.

 بایت 11 : یک عدد یک بایتی که مقدار "دقیقه" است.

 بایت 12 : یک عدد یک بایتی که مقدار "ثانیه" است.

خب حالا من میخام خودم برای تست یک مثلا winform بسازم که شبیه همین داده ها رو به وب سرویس ارسال کنه.میام از متد زیر استفاده میکنم

 byte[] requestBytes = new byte[12];


        byte[] ordinalNumberByte = BitConverter.GetBytes(150000);

        byte[] yearByte = BitConverter.GetBytes(2019);

        byte[] monthByte = BitConverter.GetBytes(11);

        byte[] dayByte = BitConverter.GetBytes(8);

        byte[] dayOfWeekByte = dayOfWeekByte = BitConverter.GetBytes(3);

        byte[] hourByte = BitConverter.GetBytes(20);
        
        for (int i = 0; i < 24; i++)
        {
            switch (i)
            {
                case 0:
                case 1:
                case 2:
                case 3:
                    requestBytes[i] = ordinalNumberByte[i];
                    break;

                case 4:
                case 5:
                    requestBytes[4] = yearByte[0];
                    requestBytes[5] = yearByte[1];
                    break;

                case 6:
                    requestBytes[i] = monthByte[0];
                    break;

                case 7:
                    requestBytes[i] = dayByte[0];
                    break;

                case 8:
                    requestBytes[i] = dayOfWeekByte[0];
                    break;

                case 9:
                    requestBytes[i] = hourByte[0];
                    break;

            }
        }

 HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

Stream requestStream = req.GetRequestStream();

 requestStream.Write(requestBytes, 0, requestBytes.Length);


اصلا روشم درسته؟؟

موقع دریافت به صورت زیر عمل میکنم :

 string strValue = string.Empty;
        
        _context.Response.ContentType = "text/xml;charset=utf-8";


        System.IO.StreamReader reader = new System.IO.StreamReader(_context.Request.InputStream);
        strValue = reader.ReadToEnd();
   byte[] b = Encoding.Default.GetBytes(strValue);

مقادیر ارسال میشن ولی تو دریافت مشکل دارم.داده ها همونی نیستن که ارسال شدن.

ارسالی :

ارسالی

دریافتی

دریافتی
پاسخ در 1398/02/15 توسط
0

کسی نیس کمک کنه

من اطلاعاتی دارم که که داخل یک آرایه byte ذخیره شده است. مثلا سال ماه روز .....

خب وقتی ارسال میکنم به صورت string ارسال میشه و موقع دریافت بهم میریزه.

پاسخ در 1398/02/14 توسط
0

من باید بتونم آرایه باینری رو بگیرم و داده ها رو جدا کنم و تو دیتابیس درج کنم

پاسخ در 1398/02/15 توسط
0

سلام

مهندس حل شد.باید از BineryReader استفاده میکردم.

فقط باید توجه داشت که نوع ذخیره بایت به صورت اینتلی هست یا موتورلایی.یعنی قسمت با ارزش بایت در سمت چپ هست یا راست

پاسخ در 1398/02/19 توسط

پاسخ شما