Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 改装:响应500,内部服务器错误_Java_Android_Django_Retrofit2 - Fatal编程技术网

Java 改装:响应500,内部服务器错误

Java 改装:响应500,内部服务器错误,java,android,django,retrofit2,Java,Android,Django,Retrofit2,我正在做一个项目。web团队已经实现了用于注册和登录的API。我将实现Android部分。因此,当我使用Postman向服务器发送注册请求时,它是有效的。但当我尝试在Android上注册时,它返回500个内部服务器错误。我使用改装发送请求。这是我的密码: SignUpActivity.java: public class SingUpActivity extends AppCompatActivity { @Override protected void onCreate(Bundle save

我正在做一个项目。web团队已经实现了用于注册和登录的API。我将实现Android部分。因此,当我使用Postman向服务器发送注册请求时,它是有效的。但当我尝试在Android上注册时,它返回500个内部服务器错误。我使用改装发送请求。这是我的密码:

SignUpActivity.java:

public class SingUpActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_signup);

    final EditText email = (EditText) findViewById(R.id.input_email);
    final EditText username = (EditText) findViewById(R.id.input_name);
    final EditText password = (EditText) findViewById(R.id.input_password);
    final EditText gender = (EditText) findViewById(R.id.gender);
    final EditText location = (EditText) findViewById(R.id.location);

    Button btn_signUp = (Button) findViewById(R.id.btn_signup);

    btn_signUp.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String email_str = email.getText().toString().trim();
            String username_str = username.getText().toString().trim();
            String password_str = password.getText().toString().trim();

            if(!TextUtils.isEmpty(email_str) && !TextUtils.isEmpty(username_str) && !TextUtils.isEmpty(password_str))
            {
               // Toast.makeText(getApplicationContext(), "username: " + username_str + " email: "+ email_str + " password: " + password_str, Toast.LENGTH_SHORT).show();
                sendPost(username_str, email_str, password_str);
            }
        }
    });

}

public void sendPost(String email, String username, String password){
    Retrofit retrofit = ApiClient.getApiClient();

    ApiInterface apiInterface = retrofit.create(ApiInterface.class);
    Call<JsonResponseSignUp> call = apiInterface.signUp(new SignUpBody(username,  email, password));
    call.enqueue(new Callback<JsonResponseSignUp>() {
        @Override
        public void onResponse(Call<JsonResponseSignUp> call, Response<JsonResponseSignUp> response) {

            if (response.code() == 200) {
                    Toast.makeText(getApplicationContext(), "SUCCESS", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(getApplicationContext(), "Sorry for inconvince server is down" + response.code(), Toast.LENGTH_SHORT).show();
                Log.d("response", response.raw().body().toString());
            }

        }

        @Override
        public void onFailure(Call<JsonResponseSignUp> call, Throwable t) {
            Toast.makeText(getApplicationContext(), "ERROR while posting", Toast.LENGTH_SHORT).show();
        }
    });
}}
apinterface.java

public class ApiClient {
public static final String BASE_URL = "http://my-aws-url.com";
public static Retrofit retrofit = null;

public static Retrofit getApiClient(){
    if (retrofit == null){
        retrofit = new Retrofit.Builder().baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create()).build();
    }
    return retrofit;
}}
public interface ApiInterface {

@Headers( {"Content-Type: application/json" })
@POST("/api/users/signup")
Call<JsonResponseSignUp> signUp(@Body SignUpBody signup);
Call<User> signIn();}
public class JsonResponseSignUp {
@SerializedName("user")
@Expose
private User user;

@SerializedName("profile")
@Expose
private Profile profile;

public User getUser() {
    return user;
}

public Profile getProfile() {
    return profile;
}

public JsonResponseSignUp(Profile profile,User user ) {
    this.user = user;
    this.profile = profile;
}

public void setUser(User user) {
    this.user = user;
}

public void setProfile(Profile profile) {
    this.profile = profile;
}}
public class Profile {
@SerializedName("id")
private int id;

@SerializedName("username")
private String username;

@SerializedName("location")
private String location;

@SerializedName("gender")
private String gender;

@SerializedName("photo_path")
private String photo_path;

public int getId() {
    return id;
}

public String getUsername() {
    return username;
}

public String getLocation() {
    return location;
}

public String getGender() {
    return gender;
}

public String getPhoto_path() {
    return photo_path;
}

public Profile(int id, String username, String location, String gender, String photo_path) {
    this.id = id;
    this.username = username;
    this.location = location;
    this.gender = gender;
    this.photo_path = photo_path;
}

public void setId(int id) {
    this.id = id;
}

public void setUsername(String username) {
    this.username = username;
}

public void setLocation(String location) {
    this.location = location;
}

public void setGender(String gender) {
    this.gender = gender;
}

public void setPhoto_path(String photo_path) {
    this.photo_path = photo_path;
}}
public class SignUpBody {
public String username;
public String email;
public String password;


public SignUpBody(String username, String email, String password) {
    this.username = username;
    this.email = email;
    this.password = password;
}}
public class User {

@SerializedName("username")
private String username;

@SerializedName("email")
private String email;

public String getEmail() {
    return email;
}

public String getUsername() {
    return username;
}

public User(String username, String email) {
    this.username = username;
    this.email = email;
}

public void setUsername(String username) {
    this.username = username;
}

public void setEmail(String email) {
    this.email = email;
}}
Profile.java

public class ApiClient {
public static final String BASE_URL = "http://my-aws-url.com";
public static Retrofit retrofit = null;

public static Retrofit getApiClient(){
    if (retrofit == null){
        retrofit = new Retrofit.Builder().baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create()).build();
    }
    return retrofit;
}}
public interface ApiInterface {

@Headers( {"Content-Type: application/json" })
@POST("/api/users/signup")
Call<JsonResponseSignUp> signUp(@Body SignUpBody signup);
Call<User> signIn();}
public class JsonResponseSignUp {
@SerializedName("user")
@Expose
private User user;

@SerializedName("profile")
@Expose
private Profile profile;

public User getUser() {
    return user;
}

public Profile getProfile() {
    return profile;
}

public JsonResponseSignUp(Profile profile,User user ) {
    this.user = user;
    this.profile = profile;
}

public void setUser(User user) {
    this.user = user;
}

public void setProfile(Profile profile) {
    this.profile = profile;
}}
public class Profile {
@SerializedName("id")
private int id;

@SerializedName("username")
private String username;

@SerializedName("location")
private String location;

@SerializedName("gender")
private String gender;

@SerializedName("photo_path")
private String photo_path;

public int getId() {
    return id;
}

public String getUsername() {
    return username;
}

public String getLocation() {
    return location;
}

public String getGender() {
    return gender;
}

public String getPhoto_path() {
    return photo_path;
}

public Profile(int id, String username, String location, String gender, String photo_path) {
    this.id = id;
    this.username = username;
    this.location = location;
    this.gender = gender;
    this.photo_path = photo_path;
}

public void setId(int id) {
    this.id = id;
}

public void setUsername(String username) {
    this.username = username;
}

public void setLocation(String location) {
    this.location = location;
}

public void setGender(String gender) {
    this.gender = gender;
}

public void setPhoto_path(String photo_path) {
    this.photo_path = photo_path;
}}
public class SignUpBody {
public String username;
public String email;
public String password;


public SignUpBody(String username, String email, String password) {
    this.username = username;
    this.email = email;
    this.password = password;
}}
public class User {

@SerializedName("username")
private String username;

@SerializedName("email")
private String email;

public String getEmail() {
    return email;
}

public String getUsername() {
    return username;
}

public User(String username, String email) {
    this.username = username;
    this.email = email;
}

public void setUsername(String username) {
    this.username = username;
}

public void setEmail(String email) {
    this.email = email;
}}
SignUpBody.java

public class ApiClient {
public static final String BASE_URL = "http://my-aws-url.com";
public static Retrofit retrofit = null;

public static Retrofit getApiClient(){
    if (retrofit == null){
        retrofit = new Retrofit.Builder().baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create()).build();
    }
    return retrofit;
}}
public interface ApiInterface {

@Headers( {"Content-Type: application/json" })
@POST("/api/users/signup")
Call<JsonResponseSignUp> signUp(@Body SignUpBody signup);
Call<User> signIn();}
public class JsonResponseSignUp {
@SerializedName("user")
@Expose
private User user;

@SerializedName("profile")
@Expose
private Profile profile;

public User getUser() {
    return user;
}

public Profile getProfile() {
    return profile;
}

public JsonResponseSignUp(Profile profile,User user ) {
    this.user = user;
    this.profile = profile;
}

public void setUser(User user) {
    this.user = user;
}

public void setProfile(Profile profile) {
    this.profile = profile;
}}
public class Profile {
@SerializedName("id")
private int id;

@SerializedName("username")
private String username;

@SerializedName("location")
private String location;

@SerializedName("gender")
private String gender;

@SerializedName("photo_path")
private String photo_path;

public int getId() {
    return id;
}

public String getUsername() {
    return username;
}

public String getLocation() {
    return location;
}

public String getGender() {
    return gender;
}

public String getPhoto_path() {
    return photo_path;
}

public Profile(int id, String username, String location, String gender, String photo_path) {
    this.id = id;
    this.username = username;
    this.location = location;
    this.gender = gender;
    this.photo_path = photo_path;
}

public void setId(int id) {
    this.id = id;
}

public void setUsername(String username) {
    this.username = username;
}

public void setLocation(String location) {
    this.location = location;
}

public void setGender(String gender) {
    this.gender = gender;
}

public void setPhoto_path(String photo_path) {
    this.photo_path = photo_path;
}}
public class SignUpBody {
public String username;
public String email;
public String password;


public SignUpBody(String username, String email, String password) {
    this.username = username;
    this.email = email;
    this.password = password;
}}
public class User {

@SerializedName("username")
private String username;

@SerializedName("email")
private String email;

public String getEmail() {
    return email;
}

public String getUsername() {
    return username;
}

public User(String username, String email) {
    this.username = username;
    this.email = email;
}

public void setUsername(String username) {
    this.username = username;
}

public void setEmail(String email) {
    this.email = email;
}}
User.java

public class ApiClient {
public static final String BASE_URL = "http://my-aws-url.com";
public static Retrofit retrofit = null;

public static Retrofit getApiClient(){
    if (retrofit == null){
        retrofit = new Retrofit.Builder().baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create()).build();
    }
    return retrofit;
}}
public interface ApiInterface {

@Headers( {"Content-Type: application/json" })
@POST("/api/users/signup")
Call<JsonResponseSignUp> signUp(@Body SignUpBody signup);
Call<User> signIn();}
public class JsonResponseSignUp {
@SerializedName("user")
@Expose
private User user;

@SerializedName("profile")
@Expose
private Profile profile;

public User getUser() {
    return user;
}

public Profile getProfile() {
    return profile;
}

public JsonResponseSignUp(Profile profile,User user ) {
    this.user = user;
    this.profile = profile;
}

public void setUser(User user) {
    this.user = user;
}

public void setProfile(Profile profile) {
    this.profile = profile;
}}
public class Profile {
@SerializedName("id")
private int id;

@SerializedName("username")
private String username;

@SerializedName("location")
private String location;

@SerializedName("gender")
private String gender;

@SerializedName("photo_path")
private String photo_path;

public int getId() {
    return id;
}

public String getUsername() {
    return username;
}

public String getLocation() {
    return location;
}

public String getGender() {
    return gender;
}

public String getPhoto_path() {
    return photo_path;
}

public Profile(int id, String username, String location, String gender, String photo_path) {
    this.id = id;
    this.username = username;
    this.location = location;
    this.gender = gender;
    this.photo_path = photo_path;
}

public void setId(int id) {
    this.id = id;
}

public void setUsername(String username) {
    this.username = username;
}

public void setLocation(String location) {
    this.location = location;
}

public void setGender(String gender) {
    this.gender = gender;
}

public void setPhoto_path(String photo_path) {
    this.photo_path = photo_path;
}}
public class SignUpBody {
public String username;
public String email;
public String password;


public SignUpBody(String username, String email, String password) {
    this.username = username;
    this.email = email;
    this.password = password;
}}
public class User {

@SerializedName("username")
private String username;

@SerializedName("email")
private String email;

public String getEmail() {
    return email;
}

public String getUsername() {
    return username;
}

public User(String username, String email) {
    this.username = username;
    this.email = email;
}

public void setUsername(String username) {
    this.username = username;
}

public void setEmail(String email) {
    this.email = email;
}}
下面是服务器日志(API是使用Django Rest框架完成的):

正常工作的邮递员Json请求 职位:

答复:

{“profile”:{“id”:15,“username”:“user5”,“location”:“性别”:“photo_path”:“}”,user:{“email”:userrr5@gmail.com“,”用户名“:”user5“}}


我花了很多时间来解决这个问题,如果您发现我做错了什么,我将非常感激,谢谢。

您的服务器可能会以编码形式处理数据,请尝试此代码

@POST("/api/users/signup")
@FormUrlEncoded
Call<JsonResponseSignUp> signUp( @Field("username") String username, @Field("email") String email, @Field("password") String password);
@POST(“/api/users/signup”)
@FormUrlEncoded
呼叫注册(@Field(“用户名”)字符串用户名,@Field(“电子邮件”)字符串电子邮件,@Field(“密码”)字符串密码);

您的服务器可能正在处理编码格式的数据,请尝试此代码

@POST("/api/users/signup")
@FormUrlEncoded
Call<JsonResponseSignUp> signUp( @Field("username") String username, @Field("email") String email, @Field("password") String password);
@POST(“/api/users/signup”)
@FormUrlEncoded
呼叫注册(@Field(“用户名”)字符串用户名,@Field(“电子邮件”)字符串电子邮件,@Field(“密码”)字符串密码);

您是否也可以添加有效的邮递员邮件请求和响应机构properly@Vishal我在stackoverflow和许多其他网站上看到了所有相关问题。相信我,它不是复制品。在那个问题上,他应该使用列表。我没有在API中使用列表。@Niraj Sanghani当然,我在添加。您仍然有问题??信息不足。请截屏
邮差
请求或原始
HTTP
请求。
邮差
改装
之间的请求不同,导致服务器返回500。您不仅应该检查服务器错误日志,还应该检查来自
邮递员
改型
的原始请求。您还可以添加有效的邮递员post请求和响应正文吗properly@Vishal我在stackoverflow和许多其他网站上看到了所有相关问题。相信我,它不是复制品。在那个问题上,他应该使用列表。我没有在API中使用列表。@Niraj Sanghani当然,我在添加。您仍然有问题??信息不足。请截屏
邮差
请求或原始
HTTP
请求。
邮差
改装
之间的请求不同,导致服务器返回500。您不仅应该检查服务器错误日志,还应该检查来自
邮递员
改型
的原始请求。我的api的内容类型是json,所以我不能使用FormUrlEncoded和字段。我的api的内容类型是json,所以我不能使用FormUrlEncoded和字段。