У меня есть метод, который принимает пару аргументов, и я хочу опубликовать их в API.
Как мне это сделать?На данный момент я просто скопировал и вставил код, который у меня был для других моих методов, принимая объект в качестве параметра с именем body. Вот почему есть эти два: JsonSerializer.Serialize(body); & JsonSerializer.SerializeAsync(gzipStream, body); но я не знаю, как это сделать, и ничего не нашел онлайн.
public async Task SmsVerificationCheckAsync(string phoneNumber, string code, Guid userId)
{
var httpClient = _httpClientFactory.CreateClient("default");
var json = JsonSerializer.Serialize(body);
using var httpRequest = new HttpRequestMessage(
HttpMethod.Post,
$"/api/sms-verify-check/{userId}/{code}/{phoneNumber}");
httpRequest.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
httpRequest.Headers.AcceptEncoding.Add(new StringWithQualityHeaderValue("gzip"));
using var compressedMemoryContentStream = new MemoryStream();
// NOTE the use of leaveOpen, so we don't need to flush it
using (var gzipStream = new GZipStream(
compressedMemoryContentStream, CompressionMode.Compress, leaveOpen: true))
{
// NOTE serialize directly to gzip, no need for second memstream
await JsonSerializer.SerializeAsync(gzipStream, body);
}
compressedMemoryContentStream.Position = 0; // rewind
using var streamContent = new StreamContent(compressedMemoryContentStream);
streamContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
streamContent.Headers.ContentEncoding.Add("gzip");
httpRequest.Content = streamContent;
using var response = await httpClient.SendAsync(
httpRequest,
HttpCompletionOption.ResponseHeadersRead);
response.EnsureSuccessStatusCode();
using var stream = await response.Content.ReadAsStreamAsync();
var verification = JsonSerializer.Deserialize(
stream,
new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true
});
return verification;
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... -to-an-api
Как сериализовать кучу объектов, чтобы отправить их в API? ⇐ C#
Место общения программистов C#
-
Anonymous
1734163984
Anonymous
У меня есть метод, который принимает пару аргументов, и я хочу опубликовать их в API.
Как мне это сделать?На данный момент я просто скопировал и вставил код, который у меня был для других моих методов, принимая объект в качестве параметра с именем body. Вот почему есть эти два: JsonSerializer.Serialize(body); & JsonSerializer.SerializeAsync(gzipStream, body); но я не знаю, как это сделать, и ничего не нашел онлайн.
public async Task SmsVerificationCheckAsync(string phoneNumber, string code, Guid userId)
{
var httpClient = _httpClientFactory.CreateClient("default");
var json = JsonSerializer.Serialize(body);
using var httpRequest = new HttpRequestMessage(
HttpMethod.Post,
$"/api/sms-verify-check/{userId}/{code}/{phoneNumber}");
httpRequest.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
httpRequest.Headers.AcceptEncoding.Add(new StringWithQualityHeaderValue("gzip"));
using var compressedMemoryContentStream = new MemoryStream();
// NOTE the use of leaveOpen, so we don't need to flush it
using (var gzipStream = new GZipStream(
compressedMemoryContentStream, CompressionMode.Compress, leaveOpen: true))
{
// NOTE serialize directly to gzip, no need for second memstream
await JsonSerializer.SerializeAsync(gzipStream, body);
}
compressedMemoryContentStream.Position = 0; // rewind
using var streamContent = new StreamContent(compressedMemoryContentStream);
streamContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
streamContent.Headers.ContentEncoding.Add("gzip");
httpRequest.Content = streamContent;
using var response = await httpClient.SendAsync(
httpRequest,
HttpCompletionOption.ResponseHeadersRead);
response.EnsureSuccessStatusCode();
using var stream = await response.Content.ReadAsStreamAsync();
var verification = JsonSerializer.Deserialize(
stream,
new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true
});
return verification;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79280264/how-to-serialize-a-bunch-of-object-to-send-them-to-an-api[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия