Laravel にデータを投稿し、サーバーから文字列の応答を受け取りたいのですが、
500内部サーバーエラー
私のコードの何が問題なのですか?
レトロフィットは:
@POST("/saveInfo")
Call<String> sendInfo(
@Query("name") String name,
@Query("family") String family,
@Query("age") String age
断片的に:
public void saveInfo(String name,String family,String age){
Call<String> call = planApi.sendInfo(name,family,age);
call.enqueue(new Callback<String>() {
@Override
public void onResponse(Call<String> call, retrofit2.Response<String> response) {
if (response.isSuccessful()) {
try {
if(response.body()=="success")
Toast.makeText(view.getContext(), "saved successfully ", Toast.LENGTH_SHORT).show();
else
Toast.makeText(view.getContext(), "saved failed!", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
e.printStackTrace();
}
}else{
Log.e(TAG," Response Error:"+String.valueOf(response.code())+response.message());
Toast.makeText(view.getContext(), response.message(), Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<String> call, Throwable t) {
Log.e(TAG," Response Error :"+t.getMessage());
Toast.makeText(view.getContext(), "conection failed!", Toast.LENGTH_SHORT).show();
}
});
}
ルーターは次のとおりです。
Route::post('/saveInfo','BoController@saveInfo');
機能は次のとおりです。
public function saveInfo(Request $request)
{
$student = new Student();
$student->name = $request->name;
$student->family = $request->family;
$student->age= $request->age;
if($student->save())
echo "success";
else
echo "failed!";
}
問題が解決しました!
kernel.phpファイル\App\Http\Middleware\VerifyCsrfToken::class内の行 " " をコメント化する必要があります。" " を使用し、php 関数型 " "でのレトロフィットにも使用してください。@FormUrlEncoded@Fieldecho(json_encode("success/failed"))