Я думаю, что я близок к тому, чтобы заставить это работать, но я не уверен, как получить содержимое, чтобы узнать, какое сообщение результата возвращается в содержимом, чтобы увидеть, хорошая ли это запись или нет, и я просто не секрет производства. Я подошел близко ... могу видеть свои значения в Visual Studio Locals, но не могу до них добраться.
Это мои классы данных:
public class PurchaseOrder
{
private List<POHeader> _headers = new List<POHeader>();
private List<PODetail> _details = new List<PODetail>();
[JsonProperty("HeaderAttributes")]
public List<POHeader> Header
{
get { return _headers; }
set { _headers = value; }
}
[JsonProperty("LineAttributes")]
public List<PODetail> Details
{
get { return _details; }
set { _details = value; }
}
}
public class POHeader
{
private string _poNumber;
private int _resultCode;
private string _resultMessage;
[JsonProperty("po_number")]
public string PONumber
{
get { return _poNumber; }
set { _poNumber = value; }
}
[JsonProperty("result_code")]
public int ResultCode
{
get { return _resultCode; }
set { _resultCode = value; }
}
[JsonProperty("result_msg")]
public string ResultMsg
{
get { return _resultMessage; }
set { _resultMessage = value; }
}
}
Это в классе APIClient :
public async Task<HttpResponseMessage> PostStreamAsync(string requestUrl, CancellationToken cancellationToken, object content)
{
addHeaders();
using (var request = new HttpRequestMessage(HttpMethod.Post, requestUrl))
using (var httpContent = CreateHttpContentForStream(content))
{
request.Content = httpContent;
using (var response = await _httpClient
.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, cancellationToken)
.ConfigureAwait(false))
{
response.EnsureSuccessStatusCode();
return response;
}
}
}
Это моя задача в классе TransmitPO:
public static async Task TransmitToService(List<PurchaseOrder> orders, CancellationToken cancellationToken, string path)
{
ApiClient _client = new ApiClient(new Uri("myUrl"), "code");
var results = await _client.PostStreamAsync(path, cancellationToken, orders);
var deserializedResults = JsonConvert.DeserializeObject<List<PurchaseOrder>>(results);
}
И так я называю это при выполнении кода процесса:
await TransmitToService(poList, CancellationToken.None, poPath);
Здесь я создаю свой HttpClient ... хорошо, плохо, хуже? publi c частичный класс ApiClient {частный только для чтения HttpClient _httpClient; частный Uri BaseEndpoint {получить; устанавливать; }
private string AuthToken { get; set; }
public ApiClient(Uri baseEndpoint, string bToken)
{
BaseEndpoint = baseEndpoint;
AuthToken = bToken;
_httpClient = new HttpClient();
}
}