[]

Android'de edittext'di php tarafına post edemiyorum Lütfen yardım edin.

Merhaba 3 gündür uğraşıyorum ama yapamadım anlamaya çalıştıkça daha karmaşıklaştı acaba nerede hata yapıyorum.

MainActivity.Java


(bkz: package com.example.vezir.mysql_one;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;


import java.util.HashMap;
import java.util.Map;

public class MainActivity extends AppCompatActivity {
Button btn;
EditText edittextone,edittexttou,edittextthree;
String url = "localhost";



@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = findViewById(R.id.btn);
edittextone = findViewById(R.id.edittextone);
edittexttou = findViewById(R.id.edittexttou);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
verileriyolla();
}
});
}
public void verileriyolla(){



final String username=edittextone.getText().toString();
final String password=edittexttou.getText().toString();

if(username.equals("")==false && password.equals("")==false)
{
RequestQueue queue = Volley.newRequestQueue(MainActivity.this);

String url = "localhost"; // Post atılan adres.
StringRequest postRequest = new StringRequest(Request.Method.POST, url,
new Response.Listener<String>()
{
@Override
public void onResponse(String response) {
Toast.makeText(MainActivity.this,response,Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), "BAŞARILI", Toast.LENGTH_LONG).show();

}
},
new Response.ErrorListener()
{
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this,error.getMessage().toString(),Toast.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(), "HATALI", Toast.LENGTH_LONG).show();
}
}
) {
@Override
protected Map<String, String> getParams()
{
Map<String, String> params = new HashMap<String, String>();
params.put("username", username);
params.put("password", password);

return params;
}
};
queue.add(postRequest);
}
else
{
Toast.makeText(MainActivity.this,"Lütfen Gerekli Alanları Doldurun",Toast.LENGTH_LONG).show();
}

}




}

)bknz parantezi


Php Kısmı


<?php

$username=$_POST["username"];
$password=$_POST["password"];





try {
$db = new PDO("mysql:host=localhost;dbname=androidthree", "root", "");
print "başarılı".$username.$password;
} catch ( PDOException $e ){
print $e->getMessage();
}






$ekle=$db->query("insert into fitnesstthree(ad,soyad) values('$username','$password')");



if($ekle){

echo "Başarıyla Eklendi.";

}else{

echo "Eklenemedi.";

}




?>


dostlarım php ve sorun yok form ile index oluşturup post ettim ve veri tabanına kayıt yaptım sorun android tarafında ki edittext post edilmiyor.

Volley küübhanesine hakim değilim türkçe kaynak bulamıyorum aykut taşdelenin kitabında bile volley yok kaynak tavsiye edermisiniz. teşekkürler.
Birde Volley ile Rest Api konusunu öğrenmeye çalışırken anlamadığım 2 method var onlarıda sormak istiyorum.
getSimpleName();
getInstance();

Android ile php kullanarak mysql veri eklemeyi çok karışık anlatıyorlar. sadece bu sitede ki örneği anlayabildim o da button aktif etmemiş onclick listener kullanmamış onu da ben ekledim yani aşşağıdaki örneği yapmaya çalışıyorum aslında.

delimuhendis.info

 
Örneğin bir tık karışık. Bir de senin kod asenkron (async) çalışıyor anladığım kadar ile.
Genelde mobil için daha tercih edilir bir yöntem tabi. Ama ilk adım için daha basit bir şey ile sonuç almayı başarabilirsen onun üzerinden gelişim sağlarsın diye düşünüyorum.
İnternetten bulduğum senkron (sync) örneği basit bir dil ile anlatmaya çalıştım.

Not: Öncelik bu işin metodolojisini öğrenmeni tavsiye ederim.
Örnek olarak http çalışma yapısını daha iyi kavrarsan hangi dili kullanırsan kullan yapman gereken şeyi bildiğin için onu yapacak kod'a erişimin daha hızlı olacaktır.

public void postData() {
// Http bağlantıyı oluştur
HttpClient httpclient = new DefaultHttpClient();

// Http Post methodu ile gönderim yapacağın için HttpPost sınıfını kullan
HttpPost httppost = new HttpPost("localhost");

try {
// Post methodu ile göndereceğin parametreleri oluştur
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair("username", "göndereceğin kullanıcı adı"));
nameValuePairs.add(new BasicNameValuePair("password", "göndereceğin şifre"));

//Oluşturduğun parametreleri yine üstte oluşturduğun httpPost instance'a dahil et
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

// En üsste oluşturuduğun bağlantının içerisine httpost'u koyarak gönder.
HttpResponse response = httpclient.execute(httppost);
//Eğer php'den bir geri dönöş bekliyorsan HttpResponse response içerisinde olacak


} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
}
  • velhasilkelam  (19.01.19 22:39:54 ~ 23:07:12) 
@velhasilkelam dostum teşekkür ediyorum bu yöntem daha basit geldi bunu anlamaya çalışıcam post edebilirsem php tarafına bu yöntemi kullanırım volley kütüphanesini anlayamadım zordu sen volley kütüphanesini biliyor musun ? ve nasıl öğrendin sence de zor mu ?


  • aristotelesin berberi  (20.01.19 15:51:11) 
Volley Google'ın projesi. Başarılı bir http client ama ilk adım için biraz karışık.

Sonuç olarak arayacağın şey yine böyle bir kütüphane olacak.
İhtiyaçların seni zaten gerekli yere yönlendirecek; Volley veya kafanı ilk planda karıştıran şeyler için çok acele etme.

Basit olsun ama çalışsın :)
  • velhasilkelam  (21.01.19 11:14:17) 
@velhasilkelam dostum volley kütüphanesinin bu metodlarının ne işe yaradığını biliyormusun.
1. public void onResponse(String response)

2. public void onErrorResponse(VolleyError error) (hata mesajını bastırmak için diye biliyorum.)

3. protected Map<String, String>

4. getParams()

5. throws

6. AuthFailureError

7.Map<String,String> params=new HashMap<String, String>();

8. params.put
  • aristotelesin berberi  (22.01.19 15:21:22) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.