Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to post string array using POSTMAN?

I am using Postman to send an array of string to a web API. The web API method looks like:

[HttpPost]
public async Task<IEnumerable<DocumentDTO>> GetDocuments([FromBody]IEnumerable<string> documentNames)
{
    return await _service.GetDocuments(documentNames);
}

I saw this SO post on how to send an array using Postman. Here is how I am sending the array: enter image description here

Fiddler shows the request's content type is multipart/form-data;

enter image description here

But I am getting an error response:

{ "Message": "The request entity's media type 'multipart/form-data' is not supported for this resource.", "ExceptionMessage": "No MediaTypeFormatter is available to read an object of type 'IEnumerable1' from content with media type 'multipart/form-data'.", "ExceptionType": "System.Net.Http.UnsupportedMediaTypeException",
"StackTrace": " at System.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent content, Type type, IEnumerable
1 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken)\r\n at System.Web.Http.ModelBinding.FormatterParameterBinding.ReadContentAsync(HttpRequestMessage request, Type type, IEnumerable`1 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken)" }

I have tried setting the key as documentNames,documentNames[], documentNames[0].

I have tried selecting the body as x-www-form-urlencoded. When I do that, the API receives an empty collection.

I have tried selecting a body as raw. When I do that, the API receives null as a parameter.

Questions

  1. How do I send a string array using form-data?
  2. How do I send a string array using x-www-form-urlencoded?
  3. How do I send a string array as raw JSON?
like image 736
LP13 Avatar asked Sep 23 '16 18:09

LP13


1 Answers

Pass it as JSON array and select the raw option like below

enter image description here

For a API method signature

    public void Post([FromBody] IEnumerable<string> value)
    {
      //some processing
    }
like image 65
Rahul Avatar answered Oct 09 '22 13:10

Rahul