
Теперь, после того как мы обновили наш код до последней версии .net, вы можете увидеть это все три поля ввода принимают строку в качестве значения по умолчанию. Более того, основная проблема заключается в том, что если мы отправляем значение json в поле «Сообщение», мы получаем исключение 400, говорящее, что поле сообщения не может быть пустым.
[img]https://i. sstatic.net/8M63X0uT.png[/img]
Код моего контроллера и код класса остаются такими же, как указано ниже: -
Код: Выделить всё
[HttpPost("Produce/v2")]
public async Task ProduceForm([FromForm] KafkaPublisherRequest kafkaPublisherRequest)
{
if (kafkaPublisherRequest == null || !ModelState.IsValid)
{
return BadRequest();
}
_logger.LogInformation($"Started Publishing into Kafka Topic : {kafkaPublisherRequest.Topic}, Key :{kafkaPublisherRequest.Key}");
//Main code
return Ok(new ServiceResult(ServiceState.Completed, kafkaPublisherRequest.Key, "Produced Successfully"));
}
Код: Выделить всё
public class KafkaPublisherRequest
{
[Required]
public string Key { get; set; }
[Required]
public string Message { get; set; }
[Required]
public string Topic { get; set; }
public Dictionary Headers { get; set; }
}
Код: Выделить всё
curl -X 'POST' \
'https://localhost:5001/xxxxx' \
-H 'accept: text/plain' \
-H 'Content-Type: multipart/form-data' \
-F 'Key=Key' \
-F 'Name=Nikhil' \
-F 'Topic=topic' \
-F 'Headers='
-F 'Headers='
Когда я публикую сообщение как {"Name"="Nikhil", создается URL-адрес Curl: -
Код: Выделить всё
curl -X 'POST' \
'https://localhost:5001/api/KafkaProducer/Produce/v2' \
-H 'accept: text/plain' \
-H 'Content-Type: multipart/form-data' \
-F 'Key=Key' \
-F 'Message={"Name"="Nikhil"}' \
-F 'Topic=sdajsdasd' \
-F 'Headers='
Подробнее здесь: https://stackoverflow.com/questions/787 ... -supported
Мобильная версия