Ionic uygulamanız var ise Android 9.0 ve Android 5 sürümleri(5.9 ve öncesi) http requestleriniz muhtemelen çalışmayacaktır.@angular/http librarysinde ssl protokolü uyumsuz çalıştığı için (debugda sıkıntı yok release sürümde sıkıntı alırsınız). Bunun çözümünü araştırıp bulamayan arkadaşlar için alt kısımda çözüm mevcut.
Angular http modülü yerine Ionic Native Http Plugin (Cordova'da ise Advanced-http-plugin) kullanmalısınız.
https://ionicframework.com/docs/v3/native/http/
Kurulum :
ionic cordova plugin add cordova-plugin-advanced-http npm install --save @ionic-native/http@4Angular http ile bunun arasındaki fark nedir ?
Bu fark birkaç şekilde gerçekleşiyor.
Öncelikle angular http modülünde .subscribe kullanırken bunda .then kullanmamız gerekiyor.
angular/http de data["_body"] response iken native http de data.data response değerimiz.
Alt kısımda örnek kod
2.kısım gönderilecek parametreler.
3.kısım ise headers kısmı.
this.http.get('http://r10.net', {}, {})
.then(data => {
console.log(data.status);
console.log(data.data); // bu kısımda data["_body"] i almış oluyoruz. En basit fark ile json aldığımız bir response angular/http de JSON.parse(data["_body"]) iken JSON.parse(data.data)'ya dönüştü.
console.log(data.headers); })
.catch(error => {
console.log(error.status);
console.log(error.error);
console.log(error.headers); });Alt kısımda örnek kod (post)2.kısım gönderilecek parametreler.
3.kısım ise headers kısmı.
this.http.post('http://r10.net', {id:1,foo:bar}, {})
.then(data => {
console.log(data.status);
console.log(data.data); // bu kısımda data["_body"] i almış oluyoruz. En basit fark ile json aldığımız bir response angular/http de JSON.parse(data["_body"]) iken JSON.parse(data.data)'ya dönüştü.
console.log(data.headers); })
.catch(error => {
console.log(error.status);
console.log(error.error);
console.log(error.headers); });