Saya perlu membuat metode POST di WebApi sehingga saya dapat mengirim data dari aplikasi ke metode WebApi. Saya tidak bisa mendapatkan nilai header.
Di sini saya telah menambahkan nilai header dalam aplikasi:
using (var client = new WebClient())
{
// Set the header so it knows we are sending JSON.
client.Headers[HttpRequestHeader.ContentType] = "application/json";
client.Headers.Add("Custom", "sample");
// Make the request
var response = client.UploadString(url, jsonObj);
}
Mengikuti metode posting WebApi:
public string Postsam([FromBody]object jsonData)
{
HttpRequestMessage re = new HttpRequestMessage();
var headers = re.Headers;
if (headers.Contains("Custom"))
{
string token = headers.GetValues("Custom").First();
}
}
Apa metode yang benar untuk mendapatkan nilai header?
Terima kasih.
c#
asp.net-mvc
asp.net-mvc-4
c#-4.0
asp.net-web-api
AndrewRalon
sumber
sumber
string token = headers.GetValues("Custom").FirstOrDefault();
? Edit: Baru saja mengetahui Anda mencocokkan gaya Qs asli.headers.GetValues("somethingNotFound")
Lemparan ituInvalidOperationException
.beforeSend
ajax di JQuery untuk mengirim header?beforeSend
dan berhasil. Luar biasa :) +1Misalkan kita memiliki ProductsController API Controller: ApiController
Ada fungsi Get yang mengembalikan beberapa nilai dan mengharapkan beberapa input header (misalnya UserName & Password)
Sekarang kita dapat mengirim permintaan dari halaman menggunakan JQuery:
Semoga ini membantu seseorang ...
sumber
Cara lain menggunakan metode TryGetValues.
sumber
Untuk .NET Core:
Atau
sumber
Jika seseorang menggunakan ASP.NET Core untuk pengikatan model,
https://docs.microsoft.com/en-us/aspnet/core/mvc/models/model-binding
Ada dukungan bawaan untuk mengambil nilai dari header menggunakan atribut [FromHeader]
sumber
Content-Type
bukan pengenal C # yang validcoba baris kode ini yang berfungsi dalam kasus saya:
sumber
Seperti yang telah ditunjukkan oleh seseorang tentang cara melakukan ini dengan .Net Core, jika header Anda berisi "-" atau karakter lain yang tidak diizinkan oleh .Net, Anda dapat melakukan sesuatu seperti:
sumber
Untuk WEB API 2.0:
Saya harus menggunakan
Request.Content.Headers
sebagai gantinyaRequest.Headers
dan kemudian saya menyatakan extestion seperti di bawah ini
Dan kemudian saya memanggilnya dengan cara ini.
Saya harap ini bisa membantu
sumber
Anda perlu mendapatkan HttpRequestMessage dari OperationContext saat ini. Menggunakan OperationContext Anda bisa melakukannya seperti itu
sumber
Untuk .net Core dalam metode GET, Anda dapat melakukan seperti ini:
sumber