Search code examples
androidasp.netweb-servicesannotationsretrofit

Retrofit: Only @Query is working but @Field is not working


I am tried to insert the data using @Field and @Body with @POST but it generates "500 internal server error" and same code I tried with @GET and @Query then it works correct and data inserted successfully.

So is there any way to insert data using @Body or @Field to my asp.net web-site using web service web method.

Using @Body


 @POST("/EducationApi.asmx/addEducationAPI")
    public void addEducation(@Body Education education, Callback<Education> callback);
'''

Using @Field

'''
@FormUrlEncoded
    @POST("/EducationApi.asmx/insertEducationAPI/")
    public void insertEducationDetail(@Field("user_id") int user_id, @Field("degree_name") String degree_name, @Field("institute_name") String institute_name, @Field("board_university_name") String board_university_name, @Field("year_of_passing") int year_of_passing, @Field("percentage_cgpa") float percentage_cgpa, @Field("specialization") String specialization, Callback<Education> callback);


using @Query (This works proper)


@GET("/EducationApi.asmx/insertEducationAPI")
    public void insertEducation(@Query("user_id") int user_id,@Query("degree_name") String degree_name, @Query("institute_name") String institute_name, @Query("board_university_name") String board_university_name,@Query("year_of_passing") int year_of_passing,@Query("percentage_cgpa") float percentage_cgpa,@Query("specialization") String specialization, Callback<Education> callback);

I want to use @Post to insert the record to my database


Solution

  • @FormUrlEncoded
    @POST("/EducationApi.asmx/insertEducationAPI/")
    public void insertEducationDetail(@Field("user_id") int user_id, @Field("degree_name") String degree_name, @Field("institute_name") String institute_name, @Field("board_university_name") String board_university_name, @Field("year_of_passing") int year_of_passing, @Field("percentage_cgpa") float percentage_cgpa, @Field("specialization") String specialization, Callback<Education> callback);
    

    I have done a silly mistake with the above code. That's why it is not working so change the above code to below code

    @FormUrlEncoded
    @POST("/EducationApi.asmx/insertEducationAPI")
    public void insertEducationDetail(@Field("user_id") int user_id, @Field("degree_name") String degree_name, @Field("institute_name") String institute_name, @Field("board_university_name") String board_university_name, @Field("year_of_passing") int year_of_passing, @Field("percentage_cgpa") float percentage_cgpa, @Field("specialization") String specialization, Callback<Education> callback);