Readdy Write  
0,00 €
Your View Money
Views: Count
Self 20% 0
Your Content 60% 0

Users by Links 0
u1*(Content+Views) 10% 0
Follow-Follower 0
s2*(Income) 5% 0

Count
Followers 0
Login Register as User

Daten aus einem ActionResult auswerten

03.07.2018 (👁14226)

Daten aus einem ActionResult auswerten

Wie werte ich Nachrichten aus einem Api-Zugriff aus?

httpPost-Antwort

So kann man ActionResult Text-Meldungen aus einer Asp.Net Core Api Anwort auswerten.

Situation: der Client sendet mit httpPost eine Client-Anfrage an den Web-Server.  Der Webserver antwortet in de Api-Methode mit einer ActionResult-Response.

Im Server

Asp.Net Core Web-API

ActionResult  response= Json(new { status = "OK", message = 415 });

return response;

Im Client

Hochladen von Daten zu Web-Api

HttpResponseMessage httpResponseMessage = await client.PostAsync(sUrl_Api_Create, string_to_Upload_Content );

Und Auswerten der Antwort vom Server

string sResult = await httpResponseMessage.Content.ReadAsStringAsync() ;

Ergebnis:

Im Client

Dabei ergibt sich folgendes Ergebnis

Result = {"status":"OK","message":415}

 

Jetzt muss man natürlich diese Information auswerten.

Denn es handelt sich offensichtlich um eine Json-Antwort.

//< result >

string sResult = await httpResponseMessage.Content.ReadAsStringAsync() ;

//</ result >

 

//*like: {"status":"OK","message":415}

JsonObject jsonResult = JsonObject.Parse(sResult);

string sMessage = jsonResult.GetNamedValue("message").ToString();

 

 

Code-Beispiel im UWP Client:

//< read webApi >

//*httpPut /api/projects

string sUrl_Api_Create = app_settings._Api_Server + "/api/projects";

HttpResponseMessage httpResponseMessage = null;

try

{

    //< create Upload_Content >

    JsonObject jsonObject = new JsonObject();

    jsonObject["title"] = JsonValue.CreateStringValue(sTitle);

    jsonObject["html"] = JsonValue.CreateStringValue(sHTML);

    jsonObject["url"] = JsonValue.CreateStringValue(sURL);

    jsonObject["ort"] = JsonValue.CreateStringValue(sOrt);

    jsonObject["bereiche"] = JsonValue.CreateStringValue(sBereiche);

    jsonObject["gehalt"] = JsonValue.CreateStringValue(sGehalt);

    jsonObject["art"] = JsonValue.CreateStringValue(sArt);

 

    StringContent string_to_Upload_Content = new StringContent(jsonObject.Stringify());

    //</ create Upload_Content >

 

    //< upload >

    //httpPost=Create

    httpResponseMessage = await client.PostAsync(sUrl_Api_Create, string_to_Upload_Content );

    //</ upload >

    

    if (httpResponseMessage.StatusCode==System.Net.HttpStatusCode.OK)

    {

 

    }

    else

    {

        fx_Log("Upload Error=" + httpResponseMessage.ReasonPhrase);

    }

    //< result >

    string sResult = await httpResponseMessage.Content.ReadAsStringAsync() ;

    //</ result >

//*like: {"status":"OK","message":415}

JsonObject jsonResult = JsonObject.Parse(sResult);

string sMessage = jsonResult.GetNamedValue("message").ToString();

 

 

Zu Beachten ist dabei, dass der StatusCode der httpResponseMessage immer noch mit 200 ausgegeben wird.

Man kann deshalb jeder ActionResult Anwort auch einen Text als Content mitgeben.

Debugger Werte im Breakpoint des HttpResults

Name

Value

Type

httpResponseMessage

{StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.StreamContent, Headers: { Server: Kestrel Transfer-Encoding: chunked Date: Tue, 03 Jul 2018 11:56:44 GMT X-Powered-By: ASP.NET X-SourceFiles: =?UTF-8?B?xxxxx==?= Content-Type: application/json; charset=utf-8 }}

System.Net.Http.HttpResponseMessage

Content

{System.Net.Http.StreamContent}

System.Net.Http.HttpContent {System.Net.Http.StreamContent}

Headers

{Server: Kestrel Transfer-Encoding: chunked Date: Tue, 03 Jul 2018 11:56:44 GMT X-Powered-By: ASP.NET X-SourceFiles: =?UTF-8?B?xxxxx==?= }

System.Net.Http.Headers.HttpResponseHeaders

IsSuccessStatusCode

true

bool

ReasonPhrase

"OK"

string

RequestMessage

{Method: POST, RequestUri: 'http://localhost:51198/api/projects', Version: 2.0, Content: System.Net.Http.StringContent, Headers: { Authorization: Bearer xxx.xxx Content-Type: text/plain; charset=utf-8 Content-Length: 1020 }}

System.Net.Http.HttpRequestMessage

StatusCode

OK

System.Net.HttpStatusCode

Version

{1.1}

System.Version

Static members

Non-Public members

sResult

"{\"status\":\"OK\",\"message\":415}"

string