Saya perlu mendapatkan tanggapan kembali dalam teks biasa dari pengontrol API Web ASP.NET.
Saya telah mencoba melakukan permintaan Accept: text/plain
tetapi tampaknya tidak berhasil. Selain itu, permintaan tersebut bersifat eksternal dan di luar kendali saya. Apa yang akan saya capai adalah meniru cara ASP.NET lama:
context.Response.ContentType = "text/plain";
context.Response.Write("some text);
Ada ide?
EDIT, solusi : Berdasarkan jawaban Aliostad, saya menambahkan formatter teks WebAPIContrib , menginisialisasinya di Application_Start:
config.Formatters.Add(new PlainTextFormatter());
dan pengontrol saya berakhir seperti:
[HttpGet, HttpPost]
public HttpResponseMessage GetPlainText()
{
return ControllerContext.Request.CreateResponse(HttpStatusCode.OK, "Test data", "text/plain");
}
sumber
Jika Anda hanya mencari pemformat polos / teks sederhana tanpa menambahkan dependensi tambahan, ini harus dilakukan.
Jangan lupa untuk menambahkannya ke konfigurasi api web Global Anda.
Sekarang Anda dapat mengirimkan objek string ke
sumber
Untuk .net core:
https://docs.microsoft.com/en-us/aspnet/core/mvc/models/formatting
sumber
HttpContext.Current
kewajiban.httpResponseMessage.Headers
ketext/plain
di pengontrol Anda asalkan Anda telah mendaftarkan pemformat teks biasa.sumber
Jika Terima: teks / biasa tidak berfungsi, maka tidak ada pemformat terdaftar untuk jenis mime teks.
Anda dapat memastikan bahwa tidak ada pemformat untuk jenis mime yang ditentukan dengan mendapatkan daftar semua pemformat yang didukung dari konfigurasi layanan.
Buat formatter jenis media yang sangat mudah yang mendukung jenis teks mime.
http://www.asp.net/web-api/overview/formats-and-model-binding/media-formatters
sumber
Ekstensi seperti berikut ini dapat mengurangi jumlah baris dan mempercantik kode Anda:
Sekarang Anda dapat menggunakan ekstensi yang ditentukan di
Web API
:Dengan perutean
{DOMAIN}/api/Home/Index
Anda dapat melihat teks biasa berikut:sumber