尝试登录到Web服务器时,响应协议= http / 1.1代码= 400消息=错误的请求改进

时间:2019-12-10 08:42:04

标签: java android retrofit retrofit2 httpwebresponse

我正在尝试使用改造功能在服务器中调用api,但收到响应代码400错误的请求 我尝试将@Filed与@FormUrlEncoded一起使用,并尝试将@Part与@Multipart一起使用 并尝试发送用户名和电话作为hashMap @FieldMap Map<String, String> options  与@FormUrlEncoded 而且即使我尝试将其发送为@Query

也无法正常工作

这是我的api类


    @Multipart
    @POST("api/users")
//    @Headers({
//            "Content-Type: application/json;charset=utf-8",
//            "Accept: application/json;charset=utf-8",
//            "Cache-Control: max-age=640000"})
    Call<normalResponse> register(@Part("name")String name,@Part("mobile")String mobile);```

这是我的api clint


    public static final String BASE_URL = "https://xxx-backend.herokuapp.com/";


    public static Retrofit getClient(String baseUrl) {
        HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
        logging.setLevel(HttpLoggingInterceptor.Level.BODY);
        OkHttpClient okHttpClient = new OkHttpClient().newBuilder()
                .connectTimeout(60, TimeUnit.SECONDS)
                .readTimeout(60, TimeUnit.MINUTES)
                .writeTimeout(60, TimeUnit.MINUTES)
                .addInterceptor(logging)
                .build();

        Gson gson = new GsonBuilder()
                .setLenient().setLenient()
                .create();

        return new Retrofit.
                Builder()
                .client(okHttpClient)
                .baseUrl(baseUrl)
                .addConverterFactory(GsonConverterFactory.create(gson))
                .build();
    }
}

这就是我的称呼

        loading = ProgressDialog.show(LoginActivity.this, "loading ....", "... wait", false, false);
        loading.setCancelable(false);
        loading.setCanceledOnTouchOutside(false);
        NetWorkApis netWorkApis = ApiClient.getClient(ApiClient.BASE_URL).create(NetWorkApis.class);
        Map<String,String> hashMap=new HashMap<>();
        hashMap.put("name",name);
        hashMap.put("mobile",phone);
        Call<normalResponse> settingResponseCall = netWorkApis.register(hashMap);
        settingResponseCall.enqueue(new Callback<normalResponse>() {
            @SuppressLint("LongLogTag")
            @Override
            public void onResponse(Call<normalResponse> call, Response<normalResponse> response) {
                if (response.isSuccessful()) {
                    if (response.body().getError()){
                        Utility.showAlertDialog(getString(R.string.error), response.body().getMessage(), LoginActivity.this);
                        loading.dismiss();

                    }else {
                        addToPref("tt");
                        next.setText("Verify");
                        first.setVisibility(View.GONE);
                        second.setVisibility(View.VISIBLE);
                        topText.setText("I Still don't trust you.\nTell me something that only two of us know.");
                        loading.hide();
                    }

                }else {
                    Log.i(TAG, response.errorBody().toString());
                    Utility.showAlertDialog(getString(R.string.error), getString(R.string.servererror), LoginActivity.this);
                    loading.hide();

                }
            }

            @SuppressLint("LongLogTag")
            @Override
            public void onFailure(Call<normalResponse> call, Throwable t) {
                Log.i(TAG, t.getLocalizedMessage());
                loading.hide();
                Utility.showAlertDialog(getString(R.string.error), getString(R.string.servererror), LoginActivity.this);
            }
        });
    }

这是我的正常响应时间

public class normalResponse {
    @SerializedName("Data")
    @Expose
    private String data;

    @SerializedName("error")
    @Expose
    private Boolean error;

    @SerializedName("message")
    @Expose
    private String message;

    public String getData() {
        return data;
    }

    public void setData(String data) {
        this.data = data;
    }

    public Boolean getError() {
        return error;
    }

    public void setError(Boolean error) {
        this.error = error;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}

0 个答案:

没有答案