Http PostAsJsonAsync получает нулевой параметр (DTO) - PullRequest
0 голосов
/ 23 сентября 2019

Я пытаюсь передать объект класса DTO на мой сервер, но объект отправляется null

DTO:

public class FileSettings
{
    public int SetID { get; set; }
    public int RunID { get; set; }
    public int FileID { get; set; }
}

Клиент:

string URL = "http://localhost:9000";
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(URL);

FileSettings data = new FileSettings();
data.SetID = setID;
data.RunID = runID;
data.FileID = fileID;

HttpContent content = new StringContent(JsonConvert.SerializeObject(data), Encoding.UTF8, "application/json");
// Add an Accept header for JSON format.
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.PostAsJsonAsync("/api/output/ApplyFileRule", content);

Сервер:

public void ApplyFileRule([FromBody] FileSettings data)
{
    var runID = data.RunID;
    ...
}

1 Ответ

1 голос
/ 23 сентября 2019

Измените это:

FileSettings data = new FileSettings();
FileSettings.SetID = setID;
FileSettings.RunID = runID;
FileSettings.FileID = fileID;

HttpContent content = new StringContent(JsonConvert.SerializeObject(data), Encoding.UTF8, "application/json");

На это:

FileSettings data = new FileSettings();
data.SetID = setID;
data.RunID = runID;
data.FileID = fileID;

HttpContent content = new StringContent(data, Encoding.UTF8, "application/json");
...