C# Dapatkan Header Permintaan dan kembalikan entitas yang diurutkan

Bagaimana cara membaca header permintaan? Saya ingin mencari dan membaca kunci, katakanlah diurutkan dan jika benar saya mengembalikan versi semua buku/entitas yang diurutkan. ini tidak sepertinya tidak berhasil untukku. Ini adalah pertanyaan lama lainnya yang juga tidak berhasil karena saya tidak dapat membandingkannya meminta kunci header ke string atau null. Ini adalah kode saya saat ini:

// GET: api/Books
    [HttpGet]
    public async Task<ActionResult<IEnumerable<Book>>> GetAllBooks()
    {
        if (Request.Headers["sorted"] == true)
        {
         

        }
        return await _context.Books.ToListAsync();
    }

person csharpnoob    schedule 14.08.2020    source sumber
comment
Selain dari pertanyaan spesifik, biasanya jika seseorang ingin menyetel opsi seperti ini, itu akan dikirim sebagai parameter kueri, bukan header (dan kemudian kode Anda akan lebih mudah diakses, karena akan masuk sebagai parameter ke metode).   -  person ADyson    schedule 14.08.2020
comment
Saya mengerti, saya akan melakukannya juga dan menambahkan atribut [FromRoute] dan mendapatkan nilainya. Tapi spesifikasi tugas saya mengatakan untuk menggunakan header Permintaan HTTP. Tingkatkan API di atas (GET /api/allbooks) untuk mencari parameter di header permintaan HTTP agar dapat mengembalikan versi buku yang diurutkan berdasarkan judul.   -  person csharpnoob    schedule 14.08.2020
comment
Oke. Persyaratan yang aneh, karena ini tidak mengajari Anda cara normal untuk melakukan hal-hal ini. Tugas yang menggunakan header mungkin lebih berguna untuk, misalnya, mencari token autentikasi atau sesuatu seperti itu yang biasanya dikirim di header. Pokoknya...untuk membantu kami membantu Anda, pertama-tama beri tahu kami versi Web API mana yang Anda gunakan di sini - apakah itu ASP.NET Framework, atau ASP.NET Core? Dan juga versi produk apa yang ada di dalamnya?   -  person ADyson    schedule 14.08.2020
comment
ASP.NET core 3.1.302 (terbaru), menggunakan visual studio terbaru 16.7.1   -  person csharpnoob    schedule 14.08.2020
comment
Terima kasih. (Versi visual studio tidak relevan, itu tidak memiliki efek apa pun saat runtime. Kode akan bekerja dengan cara yang sama jika Anda menulisnya di Notepad). Juga, bagaimana Anda membuat permintaan masuk ke API? Apakah Anda yakin bahwa header disetel dengan benar dalam permintaan? (Hanya mencoba mengesampingkan semua kemungkinan)   -  person ADyson    schedule 14.08.2020
comment
Saya menggunakan Tukang Pos. Yakin permintaannya disetel dengan benar, di kunci saya tambahkan diurutkan tanpa tanda kutip dan di nilai saya tambahkan benar.   -  person csharpnoob    schedule 14.08.2020
comment
Oke. Jadi apa sebenarnya yang terjadi ketika Anda menjalankan kode di atas? Ingatlah bahwa header biasanya diperlakukan sebagai string. Jadi menurut saya Anda harus melakukan == "true") dalam pernyataan if Anda, atau Anda perlu mengekstrak nilainya, lalu melemparkannya ke boolean dan kemudian melakukan perbandingan. Anda juga mungkin ingin mempertimbangkan untuk memeriksa apakah header pasti ada terlebih dahulu, untuk menghadapi skenario itu (saya kira Anda memperlakukannya sebagai kesalahan, atau berasumsi bahwa tidak adanya header menyiratkan nilai default false).   -  person ADyson    schedule 14.08.2020
comment
Saya tidak tahu cara mengembalikan array entitas yang diurutkan jadi saya belum bisa mencobanya.   -  person csharpnoob    schedule 14.08.2020
comment
Hah? Anda tidak perlu mengetahuinya untuk menguji apakah pernyataan if Anda berfungsi. cukup gunakan debugger VS untuk menguji kode Anda seperti sekarang. Namun saya cukup yakin Anda perlu mengubahnya dengan salah satu cara yang telah saya tunjukkan.   -  person ADyson    schedule 14.08.2020
comment
if(bool.TryParse(Request.Headers["sorted"], out bool isSorted) && isSorted) ubah menjadi ini.   -  person iSR5    schedule 14.08.2020
comment
Mengapa pertanyaan ini diposting dua kali? stackoverflow.com/questions/63411882/   -  person Airn5475    schedule 14.08.2020
comment
dijawab di sini   -  person Hameed    schedule 14.08.2020
comment
Apakah ini menjawab pertanyaan Anda? C# dapatkan Header permintaan dan kembalikan daftar entitas yang diurutkan   -  person Hameed    schedule 15.08.2020