PDA

View Full Version : سوال: چگونگی گرفتن یک رشته خیلی خیلی طولانی از سمت سرور



hastiam
یک شنبه 27 مهر 1393, 12:03 عصر
سلام دوستان
من یک رشته بسیار طولانی دارم که توسط ویرگول (،) می توان کاراکترها رو از هم جدا کرد این رشته به عنوان پارامتر ورودی یکی از تابع هاست من سمت کلاینت ورودی رو به شکل زیر گرفتم :


var GoodsArray = [];


GoodsArray.push($("#Goods").attr('id'));


$.post('@Url.Action("Index2", "WarehouseReport")', { goodsIdList: JSON.stringify(GoodsArray) }, function (result) {
.....
});


مشکل من اینه که نمیدونم سمت سرور، پارامتر ورودی رو از چه نوعی بگیرم تا این رشته رو درست بخونه. مثلا یک آرایه از نوع string[] گرفتم یا لیستی از string یعنی List<string> گرفتم جواب نداد و string خالی هم گرفتم چون رشته خیلی خیلی طولانیه (بیش از 10000 کاراکتر)، اصلا وارد تابع سرور ساید نمی شه تا ورودی رو بخونه اگه طول رشته رو کم کنم و ورودی رو از نوع string بگیرم درست جواب میده. اما در مواقعی که رشته خیلی طولانی باشه نمیدونم باید چیکار کنم؟


public GetListCostGoods(string goodsIdList)
{
....
}

hastiam
چهارشنبه 30 مهر 1393, 13:18 عصر
مثل اینکه سوالم رو نباید تو این تالار بیان می کردم. :متفکر: :خجالت:

محمد فدوی
چهارشنبه 30 مهر 1393, 19:11 عصر
بعید میدونم برای ارسال حدود ۱۰۰۰۰ کاراکتر به سرور مشکلی داشته باشید. اما بهرحال یه تکنیک میتونه بافر کردن رشته باشه. یا حتی میشه رشته رو توی چند بخش جداگونه بفرستید به سرور.

cups_of_java
چهارشنبه 30 مهر 1393, 20:32 عصر
اول چک کنید سرورتون خطا نمیده وقتی درخواست همراه رشته میرسه بهش... شاید محدودیتی روی حجم و بنده درخواست ست شده باشه که باعث میشه رشته به کد شما نرسه
اگه رشته به کد شما میرسه خب باید بتونید توی یک رشته جاوا جاش بدید.

نهایتن اگه خیلی حساس هستید در این موارد که طول بدنه درخواست زیاد باشه شما از Streaming هم می تونید استفاده کنید. اما رشته ۱۰۰۰۰ کاراکتری چیز زیادی نیست.

hastiam
شنبه 03 آبان 1393, 11:27 صبح
اول چک کنید سرورتون خطا نمیده وقتی درخواست همراه رشته میرسه بهش... شاید محدودیتی روی حجم و بنده درخواست ست شده باشه که باعث میشه رشته به کد شما نرسه
اگه رشته به کد شما میرسه خب باید بتونید توی یک رشته جاوا جاش بدید.

نهایتن اگه خیلی حساس هستید در این موارد که طول بدنه درخواست زیاد باشه شما از Streaming هم می تونید استفاده کنید. اما رشته ۱۰۰۰۰ کاراکتری چیز زیادی نیست.

دقیقا وقتی رشته خیلی طولانی رو به عنوان پارامتر ورودی ارسال می کنم وقتی برک پوینت (break point) میذارم که خط به خط اجرا کنم اصلا به تابع مربوطه نمیرسه.:متعجب::متعجب::متعجب: ولی اگه طول رشته رو کم کنم به تابع مربوطه میرسه و برنامه درست اجرا میشه و خروجی مربوطه رو میده.