دسته بندی ها
23:33 1398/10/06

دریافت مقادیر از web api در Asp.net core

مشخصات سوال کننده :
کاربر : fateme     امتیاز کاربر : 1635     رتبه کاربر : 2
دسته بندی : Asp.net Core Asp.net Mvc

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 5615
هوش مصنوعی

پاسخ هوش مصنوعی

برای دریافت و پردازش داده های برگشتی از یک SOAP Web API در ASP.NET Core، شما می توانید از کلاس HttpClient استفاده کنید. پس از اینکه پاسخ را دریافت کردید، می توانید از XDocument برای تحلیل XML استفاده کنید. در زیر یک نمونه کد برای انجام این کار آورده شده است:

using System.Net.Http;
using System.Xml.Linq;

// ...

HttpClient httpClient = new HttpClient();
var httpResponse = await httpClient.GetAsync($"http://myserver.com/api/xml?action=action-name");

if (httpResponse.IsSuccessStatusCode)
{
    var xmlContent = await httpResponse.Content.ReadAsStringAsync();
    XDocument xmlDocument = XDocument.Parse(xmlContent);

    // حالا می توانید با استفاده از xmlDocument به داده های مورد نظر دسترسی داشته باشید
    var values = xmlDocument.Descendants("YourNodeName")
                             .Select(x => x.Value)
                             .ToList();

    // به عنوان مثال، می توانید مقادیر را در کنسول چاپ کنید
    foreach(var value in values)
    {
        Console.WriteLine(value);
    }
}
else
{
    // در صورت رخ دادن خطا، پیام خطا را چاپ کنید
    Console.WriteLine($"Error: {httpResponse.StatusCode}");
}

با استفاده از این کد، شما می توانید پاسخ XML را دریافت کرده و مقادیر مورد نظر را از آن استخراج کنید.

به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : hamid_b 16:28 1398/10/07

استفاده از 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;

 

اطلاعات بیشتر در این لینک

به این پاسخ امتیاز بدهید    0
امتیاز: 518 رتبه: 4
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود