改装post request response.issucessful()返回false,response.code()返回404

kqlmhetl  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(207)

我是一个自学成才的学生。出现404错误或响应失败。这是在db中插入值的部分,但该值是在db中注册的。这是我的密码。我继续说检查部分。我在网上搜索了一个解决方案,并试图遵循它,但没有帮助。帮他们一把。
主活动.java

private final String BASE_URL = "http://***.***.***.***:8080";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_insert);

    btnInsert.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            addProduct();
        }
    });

    retrofitClient(BASE_URL);
}

public void addProduct() {
    HashMap<String, String> map = new HashMap<>();
    map.put("a", "value");
    map.put("b", "value");

    Call<ProductDTO> call = productService.addProduct(map);
    call.enqueue(mRetrofitCallback);
}

private void retrofitClient(String baseUrl) {
    Gson gson = new GsonBuilder().setLenient().create();

    retrofit = new Retrofit.Builder().baseUrl(baseUrl).addConverterFactory(GsonConverterFactory.create(gson)).build();

    productService = retrofit.create(ProductService.class);
}

private final Callback<ProductDTO> mRetrofitCallback = new Callback<ProductDTO>() {
    @Override
    public void onResponse(@NonNull Call<ProductDTO> call, Response<ProductDTO> response) {
        if (TextUtils.isEmpty(edit.getText())) {
            AlertDialog.Builder builder = new AlertDialog.Builder(InsertActivity.this);
            dialog = builder.setMessage("빈 칸이 있습니다").setNegativeButton("확인", null).create();
            dialog.show();
        } else if (!response.isSuccessful()) {
            //check
            startToast("관리자한테 문의하세요 : " + response.code());
        } else {
            Log.d(TAG, "성공");
            Intent main = new Intent(getApplicationContext(), ListActivity.class);
            main.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(main);
            startToast("등록되었습니다");
        }
    }

    @Override
    public void onFailure(@NonNull Call<ProductDTO> call, Throwable t) {
        //check
        Log.d(TAG, "Fail msg : " + t.getMessage());
    }
}

产品服务.java

public interface ProductService {
    @FormUrlEncoded
    @POST("/product/insert")
    Call<ProductDTO> addProduct(@FieldMap HashMap<String, String> fields);
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题