Hallo zusammen,
schon 1000 mal berührt, tausend mal hat's geklappt.
Nun hat's Zoom gemacht.
Doch zur Sache:
Ich habe eine kleine .NET Core 3.0 WebApi Anwendung.
Hier gibt es im Controller eine Funktion, welche einen anderen WebService aufruft.
Das ganze wird mit dem Postman getestet und die Daten werden auch korrekt übergeben.
Der Controller sieht so aus:
[Route("api/[controller]")]
[ApiController]
public class SapRueckmeldungsController : ControllerBase
{
....
...
....
[HttpPost]
[Route("CheckRueckmeldung")]
public ActionResult<SapRueckmeldung> CheckRueckmeldung(SapWriteData data)
{
data ist korrekt gefüllt.
In diesem ist dann folgende Funktion:
HttpClient client = new HttpClient
{
BaseAddress = _baseAdress
};
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = client.PostAsJsonAsync(_extension, data).Result;
In der letzten Zeile, die Variable data ist gefüllt und stellt ein Model "SapWriteData" dar.
Diese Webanwendung wird damit aufgerufen:
public IHttpActionResult GetColorNew([FromBody]SapWriteData value)
Value ist hier aber immer null und das ist das Problem.
Kann es am "FromBody" liegen?
Eigentlich ja nicht, denn diese Funktion und andere rufe ich auf exakt dieselbe Weise ziemlich oft in anderen Funktionen in anderen Projekten auf.
Woran könnte das dann liegen?
Also am FromBody liegt es nicht.
Übergabe, d.h. value = null.
Dann muss es daran liegen, dass ich von einem Webservice aus einen anderen Webservice aufrufe?
Irgendwas mit Threads?
Lösung:
zwar verstehe ich es nicht, aber ich musste vorher die Daten noch zu Json umwandeln:
resJson = new StringContent(content: JsonConvert.SerializeObject(data),
encoding: Encoding.UTF8,
mediaType: "application/json");