دریافت مقادیر از web api در Asp.net core
سلام. پروژه خودم رو با Asp.net core ایجاد کردم. در قسمتی از پروژه قصد دارم از یک SOAP Web Api استفاده کنم. همونطوری که می دونید خروجی api های soap از نوع xml هستن.
من با استفاده از دستور زیر می تونم به api درخواست بفرستم و خیلی از عملیات رو انجام بدم
HttpClient httpClient = new HttpClient();
var httpResponse = await httpClient.
GetAsync($"http://myserver.com/api/xml?action=action-name");
اما حالا قصد دارم که مقادیر رو از api دریافت کنم و اصطلاحا عملیات parse در مقادیر برگشتی رو انجام بدم.
سوالم این هست چجوری میتونم مقدار برگشتی api رو به صورت xml دریافت کنم ؟
استفاده از Web Api در Asp.net core
در صورتی که بخواید از یک Web Api در Asp.net core استفاده کنید همونطور که کدهاش رو قرار دادید باید توسط کلاس HttpClient یک Request رو به سمت سرور ارسال کنید تا عملیات مورد نظر شما انجام بشه.
اما گاهی اوقات نیاز هست مقدار دریافتی که میتونه Json یا Xml باشه دریافت بشه و اصطلاحا Parse بشه. برای این کار می تونید از روش زیر استفاده کنید.
Parse کردن xml در Asp.net core
با توجه به اینکه Web Api شما از نوع SOAP هست پس برگشتی شما یک فایل Xml خواهد بود. برای این منظوز از کد زیر استفاده کنید
var http = await httpClient.GetAsync($"http://servier.com/api/xml?action=action-name");
string incomingText = http.Content.ReadAsStringAsync().Result;
XDocument doc = XDocument.Parse(incomingText);
در کدهای بالا در خط اول به Web Api یک درخواست ارسال شده. در خط دوم توسط متد ReadAsStringAsync محتوای درخواست یا همون body درخواست در یک متغیر از نوع string نگهداری شده و در خط سوم هم مقدار متغیر incomingText پارس شده و به صورت xml در متغیر doc نگهداری شده.
بدست آوردن مقدار پارامترها در xml
در فایل xml ممکنه یکسری پارامترهایی هم وجود داشته باشه که نیاز داشته باشید اونها رو در برنامه داشته باشید. به عنوان نمونه
<rows id="23367" type="meeting" icon="meeting">
<row code="25"></row>
</rows>
فرض کنید مقدار پارامتر Code که 25 هست رو بخواید داشته باشید. برای این منظور می تونید از کد زیر استفاده کنید
var getcode = doc.Element("rows").Element("row").Attribute("code").Value;
اطلاعات بیشتر در این لینک
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2