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

نام تاپیک: مشکل ارسال یک رشته به Web Api2

  1. #1
    کاربر دائمی آواتار leontry89
    تاریخ عضویت
    مهر 1392
    پست
    196
    تشکر کردن
    96
    3 بار تشکر شده در 3 پست

    مشکل ارسال یک رشته به Web Api2

    دوستان من یک web api2 دارم که در یک متد Get ساعت و زممان و رو برمیگردونه و در یک متد رشته ای به نام name رو میگیره و ذخیره میکنه در دی بی.

    حالا مشکلم اینه این کد چرا خطا میده:
            private void button1_Click(object sender, EventArgs e)
    {
    Employee ep = new Employee() { Name = "ali" };
    HttpClient hc = new HttpClient();
    hc.BaseAddress = new Uri("http://test.com/api/myapi");
    HttpResponseMessage response = hc.PostAsync("api/myapi", ep).Result;
    }
    آخرین ویرایش به وسیله leontry89 : پنج شنبه 19 مرداد 1396 در 23:49 عصر

  2. #2
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    41
    پست
    5,863
    تشکر کردن
    406
    6,062 بار تشکر شده در 1,473 پست

    نقل قول: مشکل ارسال یک رشته به Web Api2

    این کد رو در چه نوع برنامه ای نوشته اید؟ آیا Windows Forms یا Web Forms است؟

  3. کاربرانی که به خاطر مطلب مفید مهدی کرامتی از وی تشکر کرده‌اند:


  4. #3
    کاربر دائمی آواتار leontry89
    تاریخ عضویت
    مهر 1392
    پست
    196
    تشکر کردن
    96
    3 بار تشکر شده در 3 پست

    نقل قول: مشکل ارسال یک رشته به Web Api2

    ویندوز فرم

  5. #4
    کاربر دائمی آواتار leontry89
    تاریخ عضویت
    مهر 1392
    پست
    196
    تشکر کردن
    96
    3 بار تشکر شده در 3 پست

    نقل قول: مشکل ارسال یک رشته به Web Api2

    مثلا خواستم روی یک باتن کلیک شد یک رشته به api ارسال بشه

  6. #5
    مدیر بخش آواتار Mahmoud.Afrad
    تاریخ عضویت
    مرداد 1387
    پست
    3,702
    تشکر کردن
    58
    2,855 بار تشکر شده در 2,252 پست

    نقل قول: مشکل ارسال یک رشته به Web Api2

    چه خطایی میده؟

    پارامترها رو درست مقدار ندادید.
    PostAsync("api/myapi", ep , new JsonMediaTypeFormatter())

    BaseAddress رو هم http://test.golnouri.com/ بزارید.

  7. کاربرانی که به خاطر مطلب مفید Mahmoud.Afrad از وی تشکر کرده‌اند:


  8. #6
    کاربر دائمی آواتار leontry89
    تاریخ عضویت
    مهر 1392
    پست
    196
    تشکر کردن
    96
    3 بار تشکر شده در 3 پست

    نقل قول: مشکل ارسال یک رشته به Web Api2

    متاسفانه string رو پست نمیکنه به API
    ظاهرا آدرس دهی API درسته
    مشکل فرستادنه

  9. #7
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    41
    پست
    5,863
    تشکر کردن
    406
    6,062 بار تشکر شده در 1,473 پست

    نقل قول: مشکل ارسال یک رشته به Web Api2

    از کتابخانه RestSharp استفاده کن (می توانی از طریق Nuget به پروژه ات اضافه اش کنی). من همیشه با اون کار می کنم و مشکلی هم نداشتم.

  10. #8
    کاربر دائمی آواتار leontry89
    تاریخ عضویت
    مهر 1392
    پست
    196
    تشکر کردن
    96
    3 بار تشکر شده در 3 پست

    نقل قول: مشکل ارسال یک رشته به Web Api2

    میشه یک رفرنس خوب معرفی کنید که ساده باشه برای Post یک مقدار

  11. #9
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    41
    پست
    5,863
    تشکر کردن
    406
    6,062 بار تشکر شده در 1,473 پست

    نقل قول: مشکل ارسال یک رشته به Web Api2

    مثالهای خود RestSharp خیلی کامل است. من اکثرا مثالهای خودش رو کپی/پیست می کنم تو کد خودم.

  12. کاربرانی که به خاطر مطلب مفید مهدی کرامتی از وی تشکر کرده‌اند:


  13. #10
    کاربر دائمی آواتار RIG000
    تاریخ عضویت
    فروردین 1389
    پست
    2,025
    تشکر کردن
    712
    323 بار تشکر شده در 290 پست

    نقل قول: مشکل ارسال یک رشته به Web Api2

    در مورد نحوه ارسال و دریافت از web Api بیشتر بخون.

    using System;using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Net.Http;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;


    namespace WindowsFormsApplication1
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }


    private async void SaveBook_Click(object sender, EventArgs e)
    {
    //api/Book/SaveBook
    using (var client = new HttpClient())
    {
    client.BaseAddress = new Uri("http://localhost:16025/");// url
    var content = new FormUrlEncodedContent(new[]
    {
    new KeyValuePair<string, string>("", "C#‎‎‎")
    });
    var result = client.PostAsync("/api/Book/SaveBook", content).Result;
    string resultContent = await result.Content.ReadAsStringAsync();
    MessageBox.Show(resultContent);
    }
    }
    }
    }

    و متد وب سرویس

     [HttpPost]
    [Route("api/Book/SaveBook")]
    public DateTime Save([FromBody] string BookName)
    {
    return DateTime.Now;
    }

  14. کاربرانی که به خاطر مطلب مفید RIG000 از وی تشکر کرده‌اند:


  15. #11
    کاربر دائمی آواتار leontry89
    تاریخ عضویت
    مهر 1392
    پست
    196
    تشکر کردن
    96
    3 بار تشکر شده در 3 پست

    نقل قول: مشکل ارسال یک رشته به Web Api2

    نقل قول نوشته شده توسط RIG000 مشاهده تاپیک
    در مورد نحوه ارسال و دریافت از web Api بیشتر بخون.

    using System;using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Net.Http;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;


    namespace WindowsFormsApplication1
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }


    private async void SaveBook_Click(object sender, EventArgs e)
    {
    //api/Book/SaveBook
    using (var client = new HttpClient())
    {
    client.BaseAddress = new Uri("http://localhost:16025/");// url
    var content = new FormUrlEncodedContent(new[]
    {
    new KeyValuePair<string, string>("", "C#‎‎‎‎")
    });
    var result = client.PostAsync("/api/Book/SaveBook", content).Result;
    string resultContent = await result.Content.ReadAsStringAsync();
    MessageBox.Show(resultContent);
    }
    }
    }
    }

    و متد وب سرویس

     [HttpPost]
    [Route("api/Book/SaveBook")]
    public DateTime Save([FromBody] string BookName)
    {
    return DateTime.Now;
    }
    دوست عزیز من این کد رو استفاده کردم فقط contentresult نال برمیگردونه
            // GET: api/MyApi
    public string Get()
    {
    System.Threading.Thread.Sleep(3000);
    return DateTime.Now.ToString();
    }

    // GET: api/MyApi/5
    public string Get(string name)
    {
    return "سلام "+name;
    }

    این کد سمت Api من هستش مشکل از اینه به نظر شما؟ یعنی میخوام یک استرینگ به Name پاس بدم

  16. #12
    کاربر دائمی آواتار RIG000
    تاریخ عضویت
    فروردین 1389
    پست
    2,025
    تشکر کردن
    712
    323 بار تشکر شده در 290 پست

    نقل قول: مشکل ارسال یک رشته به Web Api2

    هم کد سمت کلاینت و هم سرور رو بذار.
    اگر خطایی داره رو هم بذار.
    و الان من متوجه نمیشم شما مقدار بازگشتی از سمت api رو مقدار نال میگیری و یا مقداری که داری پاس میدی به api رو نال میگیره .؟
    ضممنا کد ی که نوشتم کار میکنه. میتونی ازش استفاده کنی.
    و همچنین
    System.Threading.Thread.Sleep(3000)
    اینو برای چی گذاشتی؟

  17. کاربرانی که به خاطر مطلب مفید RIG000 از وی تشکر کرده‌اند:


  18. #13
    کاربر دائمی آواتار leontry89
    تاریخ عضویت
    مهر 1392
    پست
    196
    تشکر کردن
    96
    3 بار تشکر شده در 3 پست

    نقل قول: مشکل ارسال یک رشته به Web Api2

    این کد API هستش:
            public string Get(string name)
    {
    return "سلام "+name;
    }

    با جی کوئری اجکس از یک ویو یک مقدار رو به Name پاس دادم و کاملا اکی بود. حالا می خوام تو windows application بتونم یک مقدار رو به همین نیم پاس بدم.
    آدرس این api اینطوریه و رو هاست قرار داره: http://test.test.com/api/myapi

    حالا توسط این کد C#‎ میخوام یک string پاس بدم به این Name در API
    کد C#‎:
            private async void button2_Click(object sender, EventArgs e)
    {

    using (var client = new HttpClient())
    {
    client.BaseAddress = new Uri("http://test.test.com/");// url
    var content = new FormUrlEncodedContent(new[]
    {
    new KeyValuePair<string, string>("vbnvbnvn", "C#‎‎‎‎")
    });
    var result = client.PostAsync("api/myapi", content).Result;
    string resultContent = await result.Content.ReadAsStringAsync();
    MessageBox.Show(resultContent);
    }
    }


    اجرا میشه اما چیزی به Name پاش نمیده

  19. #14
    کاربر دائمی آواتار RIG000
    تاریخ عضویت
    فروردین 1389
    پست
    2,025
    تشکر کردن
    712
    323 بار تشکر شده در 290 پست

    نقل قول: مشکل ارسال یک رشته به Web Api2


    [HttpPost]
    [Route("api/controllerName/ActionName")]
    public string Get([FromBody] string name)
    {
    return "سلام " + name;
    }

    و این
      var result =  client.PostAsync("/api/Book/Get", content).Result;

    رو با دقت جاگذاری کن.
    در حال حضر فکر میکنم اصبا api شما call نمیشه.

    این [HttpPost] و [Route("api/controllerName/ActionName")] و [FromBody] و "/api/Book/Get" رو در نظر بگیر و اعمال کن.

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

  1. سوال: ارسال یک رشته به ادیتور از طریق WebBrowser
    نوشته شده توسط Mosafers در بخش C#‎‎
    پاسخ: 2
    آخرین پست: دوشنبه 14 اسفند 1396, 18:31 عصر
  2. سوال: ارسال یک رشته به فرم درون یک برنامه اجرایی
    نوشته شده توسط Mosafers در بخش C#‎‎
    پاسخ: 1
    آخرین پست: پنج شنبه 07 مرداد 1395, 16:21 عصر
  3. سوال: ارسال یک رشته به عنوان پارامتر کوئری ؟؟؟؟؟؟؟؟؟؟
    نوشته شده توسط malihehshajari در بخش دیگر زبان های اسکریپتی
    پاسخ: 2
    آخرین پست: یک شنبه 06 بهمن 1392, 16:52 عصر
  4. سوال: ارسال یک رشته به اکسل
    نوشته شده توسط ehsan123 در بخش C#‎‎
    پاسخ: 1
    آخرین پست: سه شنبه 27 فروردین 1392, 06:31 صبح
  5. ارسال یک رشته به SP
    نوشته شده توسط iekrang در بخش SQL Server
    پاسخ: 4
    آخرین پست: یک شنبه 18 فروردین 1387, 16:22 عصر

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

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