Pertanyaan Tidak dapat memeriksa nol untuk nilai header dalam permintaan


Saya mencoba mendapatkan nilai header seperti di bawah -

IEnumerable<string> headerValues = request.Headers.GetValues("MyCustomerId");
var id = headerValues.FirstOrDefault();

Jika nilai header nol atau tidak ada maka itu melempar kesalahan - InvalidOperationException

Cek kosong untuk GetValues tidak memberikan nilai apa pun karena tidak akan pernah mengembalikan null. Jika header tidak ada, Anda akan mendapatkan InvalidOperationException

Ada trik untuk melakukannya?


4
2018-02-17 09:31


asal


Jawaban:


Anda dapat memeriksa null seperti ini:

 if(System.Web.HttpContext.Current.Request.Headers["MyCustomerId"] != null)
   {
      // do something
   }

Dicoba dan diuji


3
2018-02-17 09:39



request.Headers adalah contoh dari System.Net.Http.HttpHeaders (Melalui HttpRequestHeaders subkelas). Ia memiliki metode TryGetValues yang dapat digunakan untuk mengambil nilai header dengan aman.

String header = null;
IEnumerable<String> headerValues;
if( this.Request.Headers.TryGetValues("HeaderName", out headerValues) ) {
    header = headerValues.First();
}

3
2018-02-17 09:39