Использовать внешний API в C # MVC без какой-либо модели, просто в формате XML - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть внешний webapi, URL которого такой: https://dhi.eoffice.gov.in/eFileServices/rest/xmldataset/efile/filecreatedsectionwise

Я пробовал это в почтальоне, и данные извлекаются в методе post, но я не могу использовать этот API в моем MVCприменение. До сих пор я пытался искать в Google, но не получил точного ответа

Я пытался создать класс и использовать класс для потребления API в таблице, но не получил никакого результата

 public class HomeController : Controller
    {
        string baseurl = "https://dhi.eoffice.gov.in/eFileServices/";


            public async Task<ActionResult> Index()
            {
                List<dhi> dhinfo = new List<dhi>();

                using (var client = new HttpClient())
                {
                    //Passing service base url  
                    client.BaseAddress = new Uri(baseurl);
                    //client.Headers["Content-type"] = "application/xml";
                    client.DefaultRequestHeaders.Clear();
                    //Define request data format  
                    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                    //Sending request to find web api REST service resource GetAllEmployees using HttpClient  
                    HttpResponseMessage Res = await client.GetAsync("rest/xmldataset/efile/filecreatedsectionwise");

                    //Checking the response is successful or not which is sent using HttpClient  
                    if (Res.IsSuccessStatusCode)
                    {
                        //Storing the response details recieved from web api   
                        var EmpResponse = Res.Content.ReadAsStringAsync().Result;

                        //Deserializing the response recieved from web api and storing into the Employee list  
                        dhinfo = JsonConvert.DeserializeObject<List<dhi>>(EmpResponse);

                    }
                    //returning the employee list to view  
                    return View(dhinfo);
                }
            }


@model IEnumerable<eofficeWepApi.Models.dhi>


<table class="table table-responsive" style="width:400px">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.departmentid)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.departmentname)
        </th>

        <th>
            @Html.DisplayNameFor(model => model.efilecreated)
        </th>

        <th>
            @Html.DisplayNameFor(model => model.orgid)
        </th>

        <th>
            @Html.DisplayNameFor(model => model.orgname)
        </th>

        <th>
            @Html.DisplayNameFor(model => model.pfilecreated)
        </th>

        <th>
            @Html.DisplayNameFor(model => model.total)
        </th>
    </tr>

    @foreach (var item in Model)
    {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.departmentid)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.departmentname)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.efilecreated)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.orgid)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.orgname)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.pfilecreated)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.total)
        </td>
    </tr>
    }

</table>  

Ответы [ 2 ]

0 голосов
/ 30 сентября 2019

Попробуйте это

using (var client = new HttpClient())
                {
                    request = (HttpWebRequest)WebRequest.Create(url);
                  //  request.KeepAlive = false;

    //here check for the authentication headers if any
                    request.PreAuthenticate = true;

                    //For JSON Response .....
                    request.Method = "GET";
                    request.ContentType = "application/json";

                    response = (HttpWebResponse)request.GetResponse();

                    string s = response.ToString();
                    StreamReader reader = new StreamReader(response.GetResponseStream());
                    result = reader.ReadToEnd().Trim();
                }
0 голосов
/ 30 сентября 2019

Пожалуйста, проверьте, какой тип API вы используете, будь то служба отдыха или служба WCF. Если это служба, вам нужно добавить ссылку на службу, из которой вы можете использовать методы API. Вы можете получить код для вышеуказанной части API в самом почтальоне: скопируйте и вставьте этот код в свой проект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...