نمایش نتایج 1 تا 10 از 10

نام تاپیک: اتصال برنامه ویندوز فرم به وب سرویس PHP

  1. #1
    کاربر تازه وارد آواتار krasus
    تاریخ عضویت
    فروردین 1391
    پست
    96

    Cool اتصال برنامه ویندوز فرم به وب سرویس PHP

    سلام
    یه وب سرویس با زبان php نوشتم و می خوام تو یه برنامه ویندوز فرم این وب سرویسو add کنم. حالا مشکل اینجاست که وقتی توی صفحه ی add web reference آدرس url این وب سرویسو می دم میگه :
    The HTML document does not contain Web service discovery information.

    توی صفحه زیر url که قراره توابع وب سرویسو نشون بده هم اینو می نویسه :
    This service does not provide WSDL

    من از این وب سرویس توی هاست استفاده کردم و جواب داده اما توی ویدوز فرم نمی تونم استفاده کنم. مشکل از کجاست؟

    کد وب سرویس :



    <?php
    require_once "nusoap.php";

    function jamesh($a, $b) {
    return $a + $b;
    }

    $server = new soap_server();
    $server->register("jamesh");
    $server->service($HTTP_RAW_POST_DATA);
    ?>



  2. #2
    کاربر دائمی آواتار CsharpNevisi
    تاریخ عضویت
    بهمن 1391
    محل زندگی
    تهران
    پست
    1,489

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

    باید از : WebResponse و WebRequest استفاده کنی ... !!!!

    UnicodeEncoding encoding = new UnicodeEncoding();
    //فیلد هارو به صورت کوئری استرینگ بفرست و در وب سرویس به صورت کوئری استرینگ بخون
    string postData = "";//"login=1&user=123&pass=456";
    byte[] data = encoding.GetBytes(postData);
    //با وب رکوئست درخواست انجام عملیات رو میدم
    WebRequest request = WebRequest.Create("http://Mysite.com/support.php?name=" + txtSuportName.Text + "&subject=" + txtSuportTitle.Text + "&email=" + txtSuportEmail.Text + "&text=" + txtSuportText.Text + "&user=" + textBoxX4.Text + "&pass=" + textBoxX6.Text);
    request.Method = "POST";
    request.ContentType = "application/x-www-form-urlencoded";
    request.ContentLength = data.Length;
    Stream stream = request.GetRequestStream();
    stream.Write(data, 0, data.Length);
    stream.Close();
    //با وب ریسپانس نتیجه رو دریافت میکنم
    WebResponse response = request.GetResponse();
    stream = response.GetResponseStream();


    StreamReader sr = new StreamReader(stream);
    if (sr.ReadToEnd() == "1")
    {
    buttonX16.Enabled = false;
    MessageBox.Show("عملیات با موفقیت انجام شد", "توجه", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
    else
    {
    MessageBox.Show("عملیات با خطا مواجه شد", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    sr.Close();
    stream.Close();

  3. #3
    کاربر تازه وارد آواتار krasus
    تاریخ عضویت
    فروردین 1391
    پست
    96

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

    نقل قول نوشته شده توسط CsharpNevisi مشاهده تاپیک
    باید از : WebResponse و WebRequest استفاده کنی ... !!!!

    UnicodeEncoding encoding = new UnicodeEncoding();
    //فیلد هارو به صورت کوئری استرینگ بفرست و در وب سرویس به صورت کوئری استرینگ بخون
    string postData = "";//"login=1&user=123&pass=456";
    byte[] data = encoding.GetBytes(postData);
    //با وب رکوئست درخواست انجام عملیات رو میدم
    WebRequest request = WebRequest.Create("http://Mysite.com/support.php?name=" + txtSuportName.Text + "&subject=" + txtSuportTitle.Text + "&email=" + txtSuportEmail.Text + "&text=" + txtSuportText.Text + "&user=" + textBoxX4.Text + "&pass=" + textBoxX6.Text);
    request.Method = "POST";
    request.ContentType = "application/x-www-form-urlencoded";
    request.ContentLength = data.Length;
    Stream stream = request.GetRequestStream();
    stream.Write(data, 0, data.Length);
    stream.Close();
    //با وب ریسپانس نتیجه رو دریافت میکنم
    WebResponse response = request.GetResponse();
    stream = response.GetResponseStream();


    StreamReader sr = new StreamReader(stream);
    if (sr.ReadToEnd() == "1")
    {
    buttonX16.Enabled = false;
    MessageBox.Show("عملیات با موفقیت انجام شد", "توجه", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
    else
    {
    MessageBox.Show("عملیات با خطا مواجه شد", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    sr.Close();
    stream.Close();
    ممنون از راهنمایی تون اما فکر کنم نتونستم درست از کدی که دادین استفاده کنم.
    Screen Shot 1393-03-21 at 19.54.33.png
    یه سوال دیگه با این روش من چه جوری می تونم از بین مثلا ۶ یا ۷ تا تابعی که توی فایل php قرار دادم یکیش رو انتخاب کنم و بهش مقدار بدم.
    راهی نداره که مثل وبسرویسی که با asp نوشته می شه و به پروژه add می شه اینم همین جوری add کنیم و از توابعش استفاده کنیم؟

  4. #4
    کاربر دائمی آواتار CsharpNevisi
    تاریخ عضویت
    بهمن 1391
    محل زندگی
    تهران
    پست
    1,489

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

    از سمت وب سرویس پاسخی دریافت نکرده ... !!!!
    شما باید از سمت پی.اچ.پی یه جوابی بفرستید که تو این کد موفقیت با عدد 1 و عدم موفقیت با عدد 0 معین میشود ... !!!!
    راهی نداره که مثل وبسرویسی که با asp نوشته می شه و به پروژه add می شه اینم همین جوری add کنیم و از توابعش استفاده کنیم؟
    اطلاعی ندارم ... !!!!
    من تو یکی از پروژه هام از این روش استفاده کردم ... !!!!
    البته بگم با https کار نمیکنه ... !!!!

  5. #5
    کاربر دائمی آواتار shahryari
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    آذربايجان
    سن
    40
    پست
    1,234

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

    از webclient استفاده کن

    <?php
    $yas = $_POST['yas'];
    if ($yas < 40)
    {
    echo "genc";
    }
    else
    {
    echo "yasli";
    }
    ?>


            void Button1Click(object sender, EventArgs e)
    {
    System.Net.WebClient w = new System.Net.WebClient ();
    System.Collections.Specialized.NameValueCollection reqparm = new System.Collections.Specialized.NameValueCollection ();
    reqparm.Add("yas",textBox1.Text );
    byte[] b = w.UploadValues("http://localhost/Ali/post.php","POST",reqparm );
    string s = System.Text.Encoding.UTF8.GetString(b);
    MessageBox.Show(s);

    }



  6. #6
    کاربر تازه وارد آواتار krasus
    تاریخ عضویت
    فروردین 1391
    پست
    96

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

    نقل قول نوشته شده توسط CsharpNevisi مشاهده تاپیک
    از سمت وب سرویس پاسخی دریافت نکرده ... !!!!
    خوب آخه چرا جواب نگرفته. با یه فایل php از روی هاست که ازش جواب می گیرم. چرا کدی که نوشتم جواب نمیده؟

    روشی که من برای ارسال اعداد ۱ و ۲ به آرگومان تابع استفاده کردم درست بوده؟

    نقل قول نوشته شده توسط CsharpNevisi مشاهده تاپیک
    شما باید از سمت پی.اچ.پی یه جوابی بفرستید که تو این کد موفقیت با عدد 1 و عدم موفقیت با عدد 0 معین میشود ... !!!!
    فکر نمی کنم توی این کد مشکل من عدد دریافتی ۱ یا ۰ باشه.

  7. #7
    کاربر تازه وارد آواتار krasus
    تاریخ عضویت
    فروردین 1391
    پست
    96

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

    نقل قول نوشته شده توسط shahryari مشاهده تاپیک
    از webclient استفاده کن
    ممنون از راهنماییتون
    با روش شما ۲ عدد فرستادم و مجموعش رو دریافت کردم.
    اما چطور می تونم یه جدول از دیتابیسو به دیتا گریدویو بدم؟
    یعنی من یه دستور SELECT رو با php انجام دادم و یه جدول گرفتم. اطلاعات رو توی یه جدول با html توی صفحه چاپ کردم. اما وقتی اون اطلاعات رو با کد شما توی مسیج باکس می خونم همشو با تگهای html نشون میده که منطقی هم هست.
    Screen Shot 1393-03-21 at 21.39.15.pngScreen Shot 1393-03-21 at 21.40.19.png
    اما چطور این اطلاعات رو به دیتاگریدویو بدم؟
    آخرین ویرایش به وسیله krasus : چهارشنبه 21 خرداد 1393 در 21:07 عصر

  8. #8
    کاربر دائمی آواتار shahryari
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    آذربايجان
    سن
    40
    پست
    1,234

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

    راهی که خودم استفاده میکنم (برای هاست های رایگان لینوکسی که دسترسی ریموت به mysql رو نمیدن ) به این شرحه:
    در داخلی یک فایل php ابتدا به بانک متصل میشم و جدول و میخونم و با حلقه وایل دونه دونه فیلد هارو میخونم و هر فیلد رو با کار کتر خاصی از هم جدا کرده و در یک متغیر ذخیره میکنم
    و همچنین ردیف ها رو هم با یک کاراکتر خاص دیگه از هم جدا میکنم و در خروجی چاپ میکنم
    سپس میام سمت سی شارپ و از هم اسپلیت میکنم و در دیتا گرید میریزم

  9. #9
    کاربر تازه وارد آواتار krasus
    تاریخ عضویت
    فروردین 1391
    پست
    96

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

    نقل قول نوشته شده توسط shahryari مشاهده تاپیک
    راهی که خودم استفاده میکنم (برای هاست های رایگان لینوکسی که دسترسی ریموت به mysql رو نمیدن ) به این شرحه:
    در داخلی یک فایل php ابتدا به بانک متصل میشم و جدول و میخونم و با حلقه وایل دونه دونه فیلد هارو میخونم و هر فیلد رو با کار کتر خاصی از هم جدا کرده و در یک متغیر ذخیره میکنم
    و همچنین ردیف ها رو هم با یک کاراکتر خاص دیگه از هم جدا میکنم و در خروجی چاپ میکنم
    سپس میام سمت سی شارپ و از هم اسپلیت میکنم و در دیتا گرید میریزم
    یعنی هر چی اطلاعات بخوام از سرور بگیرم باید به صورت text بگیرم؟

    راستی این روشی که استفاده می کنم که وب سرویس نمی شه؟می شه؟

    کسی تابعی میشناسه که بتونم اطلاعات یه جدول رو راحت به دیتاگرید بدم؟

  10. #10
    کاربر تازه وارد آواتار krasus
    تاریخ عضویت
    فروردین 1391
    پست
    96

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

    از دوستان کسی راهی رو میشناسه که بشه از طریق webclient اطلاعات رو از دیتابیس یه mysql گرفت و به دیتاگریددیو داد؟
    یعنی اینجوری mysql=>php=>C#‎ application

تاپیک های مشابه

  1. پاسخ: 4
    آخرین پست: شنبه 12 مهر 1393, 12:40 عصر
  2. اتصال برنامه تحت ویندوز #C به وب سرویس PHP
    نوشته شده توسط krasus در بخش C#‎‎
    پاسخ: 2
    آخرین پست: دوشنبه 12 خرداد 1393, 11:09 صبح
  3. حرفه ای: نحوه ادغام دو نوع معماری linq و ADO در یک برنامه ویندوز فرم
    نوشته شده توسط cisco ++ در بخش C#‎‎
    پاسخ: 7
    آخرین پست: سه شنبه 16 مهر 1392, 10:14 صبح
  4. سوال:استفاده مشترک دو برنامه ویندوز فرم ووب فرم از یک پایگاه
    نوشته شده توسط س.حمیدیانفر در بخش Classic ASP
    پاسخ: 1
    آخرین پست: شنبه 17 اردیبهشت 1384, 09:22 صبح
  5. مدریت اتصال کاربران ویندوز از درون برنامه
    نوشته شده توسط Mahdavi در بخش C#‎‎
    پاسخ: 2
    آخرین پست: یک شنبه 23 آذر 1382, 13:55 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •