Permalänk

WEB API returnera objekt

Hej,

Vill returnera List<objekt> typ från mebAPI controllern (lokalt) till web mvc kontroller i samma projekt.

I web API controller:
HttpResponseMessage response;
response = Request.CreateResponse(HttpStatusCode.OK, objectList);
return Ok(response);

MVC controller:
if (result.IsSuccessStatusCode) //lyckas!
{
var readTask = result.Content.ReadAsAsync<IList<Object>>();
readTask.Wait();
}

Får unsupported mediatype exception vid readTask (fugerar inte att ändra till ReadAsStringAsync)

Hur korrigeras detta?
Tacksam för svar.

Visa signatur

studenten

Permalänk
Medlem
Skrivet av studenten:

Hej,

Vill returnera List<objekt> typ från mebAPI controllern (lokalt) till web mvc kontroller i samma projekt.

I web API controller:
HttpResponseMessage response;
response = Request.CreateResponse(HttpStatusCode.OK, objectList);
return Ok(response);

MVC controller:
if (result.IsSuccessStatusCode) //lyckas!
{
var readTask = result.Content.ReadAsAsync<IList<Object>>();
readTask.Wait();
}

Får unsupported mediatype exception vid readTask (fugerar inte att ändra till ReadAsStringAsync)

Hur korrigeras detta?
Tacksam för svar.

Två saker jag rekommenderar. Skapa en DTO för att binda och inte object. Använd async await och inte .Wait().

För att läsa in data (antar JSON) så får du använda Json Deserialize från System.Text.Json.

Permalänk
Medlem
Skrivet av studenten:

Hej,

Vill returnera List<objekt> typ från mebAPI controllern (lokalt) till web mvc kontroller i samma projekt.

I web API controller:
HttpResponseMessage response;
response = Request.CreateResponse(HttpStatusCode.OK, objectList);
return Ok(response);

MVC controller:
if (result.IsSuccessStatusCode) //lyckas!
{
var readTask = result.Content.ReadAsAsync<IList<Object>>();
readTask.Wait();
}

Får unsupported mediatype exception vid readTask (fugerar inte att ändra till ReadAsStringAsync)

Hur korrigeras detta?
Tacksam för svar.

Skicka in objectList som argument till Ok metoden. Förstår inte varför du skapar ett response själv innan?

Sedan, kolla vad du får ut om du kör ”result.Content.ReadAsString()” (har jag för mig metoden heter)

Visa signatur

8700K | MAXIMUS X HERO | 1080TI | 960 EVO | 16GB 3600 G.SKILL | PG279Q