I Frühjahr Boot-Anwendung verwenden mit Federdaten auf Heroku eingesetzt Ruhe. Ich habe eine/api/userDatas Endpunkt, an dem ein Unternehmen kann durch eine POST-Anfrage erstellt werden. Ich habe es mit Postman getestet und es wird erstellt.Retrofit kehrt Inhaltslänge 0 mit Federdaten ruhen
Jetzt bin ich mit Retrofit auf Android die gleiche Funktionalität auszuführen. Aber das Problem ist, dass die Entity auf dem Server erstellt wird, aber onFailure() immer aufgerufen wird. Ich habe gedebuggt und festgestellt, dass Content-Length immer 0.
AngelegtVon
private void createUser() {
Gson gson = new GsonBuilder()
.setLenient()
.create();
HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
logging.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(logging).build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(ServeNetworking.ServeURLS.getBaseURL())
.addConverterFactory(GsonConverterFactory.create())
.client(client)
.build();
ServeNetworking serveNetworking = retrofit.create(ServeNetworking.class);
Call<UserData> getUserByIdResponseCall = serveNetworking.socialConnectAPI(userData);
getUserByIdResponseCall.enqueue(new Callback<UserData>() {
@Override
public void onResponse(Call<UserData> call, Response<UserData> response) {
Log.d("getUserById", "onResponse");
Toast.makeText(OTPVerificationActivity.this, "userId : onResponse", Toast.LENGTH_LONG).show();
/**
* Save data in local db and navigate to map screen.
*/
ActivityAnimationUtils.presentActivity(OTPVerificationActivity.this, MapActivity.class);
try{
DBManager.getDBManager(OTPVerificationActivity.this).setIsVerified(true);
} catch (Exception e){
e.printStackTrace();
}
}
@Override
public void onFailure(Call<UserData> call, Throwable t) {
Log.d("getUserById", "onFailure");
Utils.showSnackBar(OTPVerificationActivity.this,"Somethign went wrong", root);
}
});
}
und Schnittstelle ist:
public interface ServeNetworking {
@POST("/api/userDatas")
@Headers({ "Content-Type: application/json;charset=UTF-8"})
Call<UserData> socialConnectAPI(
@Body UserData user
);
@GET("/api/userDatas/{userId}")
@Headers({ "Content-Type: application/json; charset=utf-8"})
Call<UserData> getUser(
@Path("userId") String userId
);
/**
* this class is used to get the donor base urls...
*/
class ServeURLS{
private static String baseURL="https://fabrimizer-serve.herokuapp.com";
public static String getBaseURL() {
return baseURL;
}
}
}
Ich erhalte folgende Fehlermeldung:
java.io.EOFException: End of input at line 1 column 1 path $