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

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

  1. #1

    مشکل ارسال یک رشته به 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
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379

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

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

  3. #3

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

    ویندوز فرم

  4. #4

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

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

  5. #5

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

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

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

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

  6. #6

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

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

  7. #7
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379

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

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

  8. #8

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

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

  9. #9
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379

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

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

  10. #10

    نقل قول: مشکل ارسال یک رشته به 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;
    }

  11. #11

    نقل قول: مشکل ارسال یک رشته به 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 پاس بدم

  12. #12

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

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

  13. #13

    نقل قول: مشکل ارسال یک رشته به 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 پاش نمیده

  14. #14

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

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

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