Post byte array to Web API server using HttpClient

后端 未结 4 1599
执念已碎
执念已碎 2020-11-30 07:14

I want to post this data to Web API server:

public sealed class SomePostRequest
{
    public int Id { get; set; }
    public byte[] Content { get; set; }
}
<         


        
4条回答
  •  无人及你
    2020-11-30 08:04

    Fyi, for protobuf serialization to request body posts

            LoginRequest loginRequest = new LoginRequest()
            {
                Code = "UserId",
                Password = "myPass",
                CMToken = "eIFt4lYTKGU:APA91bFZPe3XCDL2r1JUJuEQLlN3FoeFw9ULpw8ljEavNdo9Lc_-Qua4w9pTqdOFLTb92Kf03vyWBqkcvbBfYEno4NQIvp21kN9sldDt40eUOdy0NgMRXf2Asjp6FhOD1Kmubx1Hq7pc",
            };
            byte[] rawBytes = ProtoBufSerializer.ProtoSerialize(loginRequest);
    
            var client = new HttpClient();
            client.BaseAddress = new Uri("http://localhost:9000/");
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(
                new MediaTypeWithQualityHeaderValue("application/x-protobuf"));
    
            //var bSonData = HttpExtensions.SerializeBson(data);
            var byteArrayContent = new ByteArrayContent(rawBytes);
            byteArrayContent.Headers.ContentType = new MediaTypeHeaderValue("application/x-protobuf");
    
            var result = client.PostAsync("Api/Login", byteArrayContent).Result;
    
            Console.WriteLine(result.IsSuccessStatusCode);
    

提交回复
热议问题