我向数据发送一些数据,其中包括用户想要注册时的用户详细信息。我尝试使用Postman并成功添加了记录。我发出的任何发布请求都会返回Timeout,但数据仍会发送到服务器。可能是什么问题,因为我的GET请求没有任何问题。
这是我的API服务:
@POST("/api/account/usersignup/")
@FormUrlEncoded
Call<LendingResponse> savePost(@Field("phoneNumber") String phoneNumber,
@Field("name") String name,
@Field("email") String email,
@Field("password") String password,
@Field("confirmPassword") String confirmPassword);
这是我保存调用API的方法:
public void sendPost(String userPhone, String userName, String userEmail, String userPassword, String userConfirmPassword) {
final ProgressDialog loading = ProgressDialog.show(this, "Registering", "Please wait...", false, false);
loading.show();
mAPIService.savePost(userPhone, userName, userEmail, userPassword, userConfirmPassword).enqueue(new Callback<LendingAppResponse>() {
@Override
public void onResponse(Response<LendingAppResponse> response, Retrofit retrofit) {
if(response.body().getSuccess().equals("true")) {
Intent intent = new Intent(SignUpActivity.this, ValidatePhone.class);
intent.putExtra("phone", userPhone);
startActivity(intent);
loading.dismiss();
}
else {
String message = response.body().getMessage();
Toast.makeText(SignUpActivity.this, message, Toast.LENGTH_LONG).show();
loading.dismiss();
}
}
@Override
public void onFailure(Throwable throwable) {
String error = throwable.getMessage();
Toast.makeText(SignUpActivity.this, throwable.getMessage() + " Please try again", Toast.LENGTH_SHORT).show();
loading.dismiss();
}
});
}
我已经搜索过,但似乎无法找到任何好的解决方案。
答案 0 :(得分:1)
解决方案:延长超时时间 - 通过Lending Square
将ReadTimeout和ConnectTimeout配置为httpClient 一个例子:
httpClient = new OkHttpClient();
httpClient.setReadTimeout(60 * 1000, TimeUnit.MILLISECONDS);
httpClient.setConnectTimeout(60 * 1000, TimeUnit.MILLISECONDS);