Pass byte array to web api c#

“`html

To pass a byte array to a Web API in C#, you can use the `ByteArrayContent` class from the `System.Net.Http` namespace.

First, you need to convert your byte array to a `ByteArrayContent` object. Here’s an example:


byte[] data = { 0x41, 0x42, 0x43, 0x44 };
HttpContent content = new ByteArrayContent(data);
    

Next, you can use an HTTP client to make a request to the Web API endpoint. Here’s an example using the `HttpClient` class:


using (HttpClient client = new HttpClient())
{
    // Set the base URL of your Web API
    client.BaseAddress = new Uri("https://api.example.com");

    // Set the content type header
    content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");

    // Make the POST request with the byte array content
    HttpResponseMessage response = await client.PostAsync("/api/endpoint", content);

    // Check the response status
    if (response.IsSuccessStatusCode)
    {
        // The request was successful
        string result = await response.Content.ReadAsStringAsync();
        Console.WriteLine("Response: " + result);
    }
    else
    {
        // There was an error
        Console.WriteLine("Error: " + response.StatusCode);
    }
}
    

In the example above, the byte array `data` is converted to `ByteArrayContent` and sent in the body of a POST request to the specified API endpoint. The content type is set to `application/octet-stream`, but you can change it based on your requirement.

Finally, you can handle the byte array on the server-side in your Web API controller. Here’s an example:


[HttpPost]
public IHttpActionResult MyEndpoint()
{
    // Read the byte array from the request body
    byte[] data = Request.Content.ReadAsByteArrayAsync().Result;

    // Process the byte array as needed

    return Ok();
}
    

In the server-side code above, the byte array is read from the request body and can be processed according to your API logic.

“`

Leave a comment