Enis Kurtay YILMAZ

Çözüldü: .NET Core Response Headers İçerisinde ASCII Olmayan Karakterlere İzin Vermiyor

Bir .NET Core Web API projesi geliştiriyorum. (Dotnet Version: 2.2.401)

Karar verdim. Eğer Web API içerisinde bir sorun olursa, ziyaretçilere “Web Api’de ne oldu” diye gösterecektim ve bunu Response Body içerisinde yapacaktım. Ama önce, genel bir Global Exception middleware’ini yazmam gerekecekti.

Tamam, bunu yaptım ve onlara response body içerisinde gösterdim.

Fakat bazen bu doğru yol değildir eğer bir Web API projesi geliştiriyorsanız. Response Headers içerisine de ekleyebilirsiniz. (Bence yapmalısınız)

Aynı mesajı, response headers içerisine de customize edecek şekilde yaptım ve ne oldu dersiniz? Crash!!!

Neden oldu dersiniz? Headers içerisinde ASCII olmayan karakter kabûl etmiyormuş. (Teşekkürler stackflowover.com)

Mesajım “Login olamıyor mk.” idi 🙂

[Web API]
[Global Exception için Middleware- Startup.cs]
[Global Exception için customize headers tanımları- HttpResponse_AddApplicationError_Extensions.cs]

Postman uygulaması ile (Postman çok önemli bir tool) denediğimde, body ve headers kısımları boş geliyordu.

[WEB API’den gelen Response Body Bilgisi – Postman]
[WEB API’den gelen Response Headers Bilgisi – Postman]

Sonunda çözümü buldum. Body kısmı çalışıyordu, headers kısmı çalışmıyordu çünkü ASCII karakter olmayanları kabul etmiyordu. Ben de headers kısmını base64’e çevirmeye karar verdim.

Çalışıyor.

[Converting to base64 – Extensions.cs]
[WEB API’den gelen Response Body Bilgisi – Postman]
[WEB API’den gelen Response Headers Bilgisi – Postman]

Tamamdır çalışıyor ve biraz kod yazmam lazım! Görüşürüz.