Merhaba C# istemciden Web Api yöntemini web api denetleyicide her zaman için api denetleyicisi null olarak aramak istiyorum. Nasıl kurulur? istemci tarafı:Web Api FromBody web istemcisinden null is
IFileService imgService = new ImageServiceBll();
var image = System.Drawing.Image.FromFile(serverFile);
var dataImage = imgService.ImageToBase64(image, System.Drawing.Imaging.ImageFormat.Png);
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://site.local/");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
// HTTP POST
var data = new
{
imageData = dataImage,
version = version
};
HttpResponseMessage response = await client.PostAsJsonAsync("api/contenttool/SaveImage", data);
if (response.IsSuccessStatusCode)
{
Uri gizmoUrl = response.Headers.Location;
}
}
Sunucu Tarafı: Vücutta geçti
public class ContentToolController : ApiController
{
public IFileService FileService { get; set; }
// POST api/contenttool
public string SaveImage([FromBody]string data)
{
JObject jObject = JObject.Parse(data);
JObject version = (JObject)jObject["version"];
return "-OK-" + version;
}
}
iyi bir nokta, ama PostAsJsonAsync için bir dize gibi param göndermek eğer iyi çalışırsa buldum. –
Gerçekten sisteme karşı çalışıyorsunuz. Verileri bir dize olarak gönderin ve dize olarak bağlayın, VEYA JSON olarak gönderin ve WebAPI tarafında aynı veri nesnesine bağlayın. İkinci yol bunu yapmak için doğru yoldur. Böylece, eylem yönteminizde belirli json manipülasyon kodunu yazmamaktan kaçınırsınız, çerçeve sizin için var. –
@YishaiGalatzer Bunun ile büyük ölçüde aynı fikirdeyim, ama eğer bir nesne listesini serileştirmek istersem, bu sadece bir liste tutmak için yeni bir model yaratmamı zorluyor! Bu delilik değil mi? – Chris