Arkadaşlar merhaba.

http
.post(
Sabitler.baseurl +"/Rezervasyonlar/KampanyaOlustur/",
body: widget.model.toPostData())

Yukarıdaki kod ile veriyi gönderiyorum ve
public IHttpActionResult KampanyaOlustur(ButonModel yenimodel)

Yukarıdaki ASP.NET kodu ile de veriyi yakalayıp işliyorum. Başka bir yerde de ButonModel tipi ile beraber hafta bilgisini de göndermek istiyorum. Mesela public IHttpActionResult KampanyaOlustur(ButonModel yenimodel,int hafta) şeklinde veriyi yakalamak istiyorum.
Dart tarafında şöyle denedim ancak olmadı :

http
.post(
Sabitler.baseurl +
 "/Rezervasyonlar/KampanyaOlustur/",
  body: {"yenimodel":widget.model.toPostData(),"hafta":5})

2.veriyi nasıl gönderebilirim ve yakalayabilirim acaba?

cakaltepe ne yapmak istediğinizi tam olarak anlamadım
eğer başka sayfaya veri gönderecekseniz body ile gönderebilirsiniz(keza bunun yapmışsınız. )
widget.model.toPostData() metodunun içine istediğinizi eklerseniz burada oda gönderilir.

Flutter Aslında form bilgisini API sunucuya post etmek istiyorum. ButonModel tipinde ve model isminde bir modelim var ve onu yukarıdaki gibi post edebiliyorum ancak aynı anda hem ButonModel tipini hem de int tipini göndermek istiyorum.
JQUERY ile post şöyle yapılıyordu ya
$.ajax{
type:"post",
data:{ model:model, hafta:5 }
}

işte flutterda da bu 2 datayı aynı anda nasıl gönderebilirim?

Modelim de şu şekilde:

class ButonModel{
  String adsoyad;
  int id;
   String tel;
  String durum;
  String servis;
  
Map<String, dynamic> toPostData() => {
        "adsoyad": adsoyad == null ? "" : adsoyad,
        "id": id.toString(),
        "tel": tel == null ? "" : tel,
        "durum": durum,
        "servis": servis == null ? "" : servis,
        }
}

    cakaltepe body: {“yenimodel”:widget.model.toPostData(),“hafta”:5})

    Şunun çalışması lazım,
    ne hata alıyorsunuz ?
    ve bunu debug modunda çalıştırıp buraya geldiğinde oluşan json’u kopyalayıp buraya atar mısınız ?

    Flutter

    Senin dediğin gibi yaptım en başta ama aşağıdaki hatayı alıyorum.

    İstisna oluştu.
    CastError (type ‘InternalLinkedHashMap<String, dynamic>’ is not a subtype of type ‘String’ in type cast)

    Sunucuya daha gitmediği için json verisi sönmüyor. Sunucu tarafına da breakpoint koyuyorum ancak sunucuya sorgu ulaşmadığı için yakalayamıyorum.

    Flutter
    Acelesi yok abi. ButonModel içine hafta diye de ekleme yapıp onun içinde gönderebildim sunucuya ancak tabi doğru bir yöntem değil. Siz müsait olduğunuzda örnek gönderirseniz çok memnun olurum.

      Type cast hatası alıyorsun. Gönderdiğin buton model, web api kısmında karşılık bulamıyor gibi. Her iki uygulamadaki modelleri karşılaştır. Çünkü map yapısını string olarak yakalamaya çalışıyor gibisin. Web api kodlarını da atarsan daha kolay yardımcı olabiliriz

      HseyinAkkaya

      public IHttpActionResult OdemeAlGuncelle(ButonModel yenimodel){
      .......
      }

      Sunucu tarafı yukarıdaki gibi ve dart tarafı da aşağıdaki gibi olunca çalışıyor.

      http.post(
       Sabitler.baseurl +
      "/Rezervasyonlar/KampanyaOlustur/",
      body: widget.model.toPostData())

      Ancak sunucu tarafını aşağıdaki gibi yapıp:

      public IHttpActionResult OdemeAlGuncelle(ButonModel yenimodel,int hafta){
      .....
      }

      Dart tarafını da aşağıdaki gibi yapınca çalışmıyor:

      body: {“yenimodel”:widget.model.toPostData(),“hafta”:5})

      Dart tarafında yukarıdaki kodlamada bir problem var diye düşünüyorum? sanki tekrardan convert yapmak gerekiyor bir şeyleri…

      2.kodda map yapısı oluşturuyorsun. Birinde body model alırken 2. Kodda map gönderiyorsun.bu mapin ilk elemanı model 2. Elemanı int. Web api kısmında bu map yapısını karşılayacak bir model oluşturman gerek.

      Yani aslında ilk kodun bir class’a denk gelirken 2. kodunda json’a denk geliyor ve cast hatası alıyorsun.

      cakaltepe Merhaba hocam,

      var bodyVariable = {
            'name': name.text,
            'surname': surname.text,
            'username': username.text,
            'email': email.text,
            'phone': phone.text,
            'password': password.text,
            'password_confirmation': password_confirmation.text
          };
      final response = await http.post(url,
                body: bodyVariable);

      Bu şekilde bir kullanımım var.
      Sanırım kodunuza uyarlamak zor olmaz.

        HseyinAkkaya Web programlama yaparken ajax sorgusunda böyle esnek kullanabilince (sunucu tarafında da aynı modeli oluşturma gerekmeden) burada da oluyordur da ben beceremiyorumdur diye düşündüm 😀

        HseyinAkkaya Ben zaten ButonModel yapısının içine hafta bilgisini de ekleyip göndermiştim daha önce. Diğer şekilde olur mu acaba diye şansımı deneyeyim dediydim 😁
        Teşekkür ediyorum.

        Write a Reply...