PDA

View Full Version : نحوه فراخوانی web api در windows form app



samh44
سه شنبه 14 دی 1395, 10:40 صبح
با سلام .

من یک اپ در windows form application با زبان C#‎ و framework 4.0 نوشته ام و حالا میخواهم در ان web api فراخوانی کنم (وب ای پی آیی که در یک پروژه asp.net MVC 5 نوشته شده)

قادر به ارسال آبجکت از کلاینت به سرور هستم اما از سرور چیزی را نمیتوانم دریافت کنم
وقتی در مرورگر تست میکنم میگه نمیتونه سریالایز کنه



حالا چگونه عمل کنم؟؟؟؟

shahram69
پنج شنبه 26 دی 1398, 13:03 عصر
سلام دوست عزیز برای استفاده از webapi در پروژه های ویندوزی باید از کلاس Http (http://developeram.ir/)Client استفاده کرد

shahram69
پنج شنبه 26 دی 1398, 13:04 عصر
نمونه کد خواندن اطلاعات از سرور

HttpClient client = new HttpClient();
client.BaseAddress = new Uri("SiteAddress (http://developeram.ir/Article/10/%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF-%D8%A7%D8%B2-%D8%B3%D8%A7%DB%8C%D8%AA-%DB%8C%D9%88%D8%AA%DB%8C%D9%88%D8%A8)");
//client.DefaultRequestHeaders.Add("appkey", "myapp_key");
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));

HttpResponseMessage response = client.GetAsync("api/clients").Result;
if (response.IsSuccessStatusCode)
{
var clients = response.Content.ReadAsAsync<IEnumerable<Client>>().Result;
grdshowClient.DataSource = clients;

}
else
{
MessageBox.Show("Error Code" + response.StatusCode + " : Message - " + response.ReasonPhrase);
}

shahram69
پنج شنبه 26 دی 1398, 13:07 عصر
نمونه کد اضافه کردن اطلاعات به سرور

HttpClient client = new HttpClient();

client.BaseAddress = new Uri("SiteAddress (http://developeram.ir/Article/8/%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA-%D8%B1%D9%85%D8%B2-%D9%BE%D9%88%DB%8C%D8%A7)");



client.DefaultRequestHeaders.Accept.Add(

new MediaTypeWithQualityHeaderValue("application/json"));

var myclient = new Client();
myclient.Name = txtname.Text;
myclient.NickName = txtmostar.Text;

var response = client.PostAsJsonAsync("api/clients", myclient).Result;



if (response.IsSuccessStatusCode)

{

MessageBox.Show("عضو جدید اضافه شد");


}

else

{

MessageBox.Show("Error Code" + response.StatusCode + " : Message - " + response.ReasonPhrase);

}

shahram69
پنج شنبه 26 دی 1398, 13:13 عصر
نمونه کد ویرایش اطلاعات


HttpClinet= newHttpClinet();

client.BaseAddress = new Uri("siteAddress (http://developeram.ir/Article/4/%D8%AE%D9%84%D8%A7%D9%81%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%D9%85%D9%88%D8%AA%D9%88%D8%B1%D8%B3%DB%8C%DA%A9%D 9%84%DB%8C%D8%AA)");



client.DefaultRequestHeaders.Accept.Add(

new MediaTypeWithQualityHeaderValue
("application/json"));



Var id = txtId.Text.Trim();



Varurl = "api/employee/" + id;



HttpResponseMessage
response = client.GetAsync(url).Result;



if (response.IsSuccessStatusCode)

{
var employees = response.Content.ReadAsAsync<Employee>().Result;
MessageBox.Show("Employee Found : " + employees.Name + " " + employees.Address + " " + employees.Designation);
}
else
{
MessageBox.Show("Error Code" + response.StatusCode + " : Message - " + response.ReasonPhrase);


}

shahram69
پنج شنبه 26 دی 1398, 13:15 عصر
نمونه کد حذف اطلاعات


HttpClient client = new HttpClient();

client.BaseAddress = new Uri("SiteAddress (http://developeram.ir/Article/5/%D8%B3%D8%A7%D8%A8%D9%82%D9%87-%D8%A8%DB%8C%D9%85%D9%87-%D8%AA%D8%A7%D9%85%DB%8C%D9%86-%D8%A7%D8%AC%D8%AA%D9%85%D8%A7%D8%B9%DB%8C)");



var id = txtId.Text.Trim();



var url = "api/employee/" + id;



HttpResponseMessage response = client.DeleteAsync(url).Result;



if (response.IsSuccessStatusCode)

{

MessageBox.Show("User Deleted");

BindEmployeeList();

}

else

{

MessageBox.Show("Error Code" + response.StatusCode + " : Message - " + response.ReasonPhrase);

}