我正在使用 Retrofit 2,尝试将数据发送到我的 Laravel Web。
InitRetrofit.java
public class InitRetrofit {
public static String API_URL = "http://192.168.1.2/sra-copy/public/";
public static Retrofit setInit(){
return new Retrofit.Builder().baseUrl(API_URL).addConverterFactory(GsonConverterFactory.create()).build();
}
public static ApiService getInstance(){
return setInit().create(ApiService.class);
}
}
ApiService.java
public interface ApiService {
@FormUrlEncoded
@POST("lapor/android")
Call<ResponseLapor> input(@Field("lat") String lat,
@Field("lng") String lng,
@Field("jenis") String jns,
@Field("keterangan") String ket);
}
响应类 ResponseLapor.java
public class ResponseLapor {
@SerializedName("message")
@Expose
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message){
this.message = message;
}
}
呼叫改造
public void lapor(){
lat = etLat.getText().toString();
lng = etLng.getText().toString();
keterangan = etKet.getText().toString();
jns = "Ringan";
ApiService api = InitRetrofit.getInstance();
retrofit2.Call<ResponseLapor> call = api.input(lat, lng, jns, keterangan);
call.enqueue(new Callback<ResponseLapor>() {
@Override
public void onResponse(retrofit2.Call<ResponseLapor> call, Response<ResponseLapor> response) {
String message = response.body().getMessage();
Toast.makeText(Lapor.this, message, Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(retrofit2.Call<ResponseLapor> call, Throwable t) {
Toast.makeText(Lapor.this, "Jaringan Error! "+t.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
路线
Route::post('lapor/android', 'AndroidController@Lapor')->name('android.lapor');
我认为该错误与 URL 有关,因为我有另一个使用相同结构的 android 项目,并且它成功地将数据插入本地主机(不是 laravel),只是本机 PHP。
慕尼黑5688855