0
これは私の現在の仕事の基本プロジェクトです。 アンドロイドアプリケーションは正常に動作し、データをデータベースに送信しますが、エラー例外がスローされます。 画像A screenshot of my phone's screen
主な活動
package com.mytrendin.retrofitsenddata;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import okhttp3.OkHttpClient;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
public class MainActivity extends AppCompatActivity {
EditText name,email, password;
Button save;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name= (EditText) findViewById(R.id.name);
email= (EditText) findViewById(R.id.email);
password= (EditText) findViewById(R.id.password);
save = (Button) findViewById(R.id.save);
save.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
OkHttpClient client = new OkHttpClient();
Gson gson = new GsonBuilder()
.setLenient()
.create();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://192.168.1.4")
.client(client)
.addConverterFactory(GsonConverterFactory.create(gson))
.build();
ApiService service = retrofit.create(ApiService.class);
Student student = new Student();
student.setName(name.getText().toString());
student.setEmail(email.getText().toString());
student.setPassword(email.getText().toString());
Call<Student> call = service.insertData(student.getName(),student.getEmail(),student.getPassword());
call.enqueue(new Callback<Student>() {
@Override
public void onResponse(Call<Student> call, Response<Student> response) {
Toast.makeText(MainActivity.this, "response"+response, Toast.LENGTH_LONG).show();
name.setText("");
email.setText("");
password.setText("");
}
@Override
public void onFailure(Call<Student> call, Throwable t) {
Log.i("Hello",""+t);
Toast.makeText(MainActivity.this, "Throwable"+t, Toast.LENGTH_LONG).show();
}
});
}
});
}
}
APIサービスクラス:
public interface ApiService {
@FormUrlEncoded
@POST("/test/index.php")
Call<Student> insertData(@Field("name") String name, @Field("email") String email , @Field("password") String password);
}
生徒のクラス::
public class Student {
String name, email, password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
とPHPサーバーサイドスクリプト。
$username = $_POST['name'];
$useremail = $_POST['email'];
$userpassword = $_POST['password'];
$user = "root";
$pass = "[email protected]";
$host= "localhost";
$dbname="test";
$con = mysqli_connect($host,$user,$pass,$dbname);
$sql="insert into userdata(name,email,password) values('".$username."','".$useremail."','".$userpassword."');";
if(mysqli_query($con,$sql)){
echo "data inserted";
}else{
echo "Failed";
}
?>
私が見つけた他の解決策は、手元の問題のために働いていません。どこが間違っていますか?
と交換
Class Student
に代入されていますエラー:(55,56)エラー:互換性のない種類:を呼び出すと、というメッセージがIDE上で変換されません。修正。 –
Gatibaru
コードを投稿できますか – Anil