Webservice Daten aus der Datenbank zu holen, wie unten angegeben unten angegeben:Response Message-Not-Code-404 gefunden und Antwort, während der api in Retrofit-Aufruf
MainActivity.java
public class MainActivity extends AppCompatActivity {
public static final String BASE_URL = "http://localhost:80/Projecr/";
ApiServices as;
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv=(TextView)findViewById(R.id.text);
Button btn=(Button)findViewById(R.id.btn);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
as=retrofit.create(ApiServices.class);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
load();
}
});
}
private void load() {
try {
Call<Example> call = as.List();
call.enqueue(new Callback<Example>() {
@Override
public void onResponse(Call<Example> call, Response<Example> response) {
// int statusCode = response.code();
if(!response.isSuccessful())
{
Log.e("API not success",response.toString()+response.message()+response.errorBody()+response.code());
}
Example e = response.body();
if (e == null) {
Toast.makeText(getApplicationContext(), "Null", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(MainActivity.this, "Not Null", Toast.LENGTH_LONG).show();
}
}
@Override
public void onFailure(Call<Example> call, Throwable t) {
Log.e("Failed","t.printStackTrace()"+t.getCause()+t.getMessage());
tv.setText("Failure");
}
});
}
catch (Exception e)
{
String TAG="tag";
Log.e(TAG, e.getMessage());
}
}
}
Example.java
public class Example {
@SerializedName("result")
@Expose
private List<Result> result = null;
public List<Result> getResult() {
return result;
}
public void setResult(List<Result> result) {
this.result = result;
}
}
Result.java
public class Result {
@SerializedName("id")
@Expose
private String id;
@SerializedName("name")
@Expose
private String name;
@SerializedName("address")
@Expose
private String address;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
ApiServices.java Schnittstelle
public interface ApiServices {
@GET("Smart.php")
Call<Example> List();
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.saloni.retrofit_sample.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="15dp"
android:id="@+id/text" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btn"
android:text="click"
/>
</LinearLayout>
Als ich dieses Programm ausführen, auf clickin g-Taste, erhalte ich den Toast null und die logcat Ausgabe lautet wie folgt:
E/API nicht Erfolg: [email protected] Nicht gefunden [email protected] 404
Welche bedeutet, dass die Antwortnachricht "Nicht gefunden" lautet und der Antwortcode "404" lautet.
Nach der Bearbeitung des Programms vorgeschlagen und Entfernen von "/", gibt es folgende Fehler in logcat:
E/Fehlgeschlagen: t.printStackTrace() java.lang.UnsupportedOperationException: Schnittstelle kann nicht instanziiert werden ! Schnittstellenname: javax.xml.transform.ResultUnable zum Aufrufen des No-Args-Konstruktors für die Schnittstelle javax.xml.transform.Result. Registrieren Sie einen InstanceCreator mit Gson für diesen Typ, um dieses Problem zu beheben.
umbenannt Nach der Anwendung Ihres Vorschlags und Bearbeiten des Codes, gibt es einen anderen Fehler als bearbeitet in der post.Plz führen Sie mich weiter – seilena
Es ist nicht Code Problem überprüfen Sie Ihre JSON Antwort ich denke, Sie erhalten Liste nicht Beispielobjekt –