Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.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 第2条POST请求,数据响应中为空值_Java_Android_Post_Retrofit2 - Fatal编程技术网

Java 第2条POST请求,数据响应中为空值

Java 第2条POST请求,数据响应中为空值,java,android,post,retrofit2,Java,Android,Post,Retrofit2,我在使用POST请求将数据发布到API时遇到了一些问题。 服务器的响应成功,但响应上显示的所有值均为空: I/SUCCESS: test : Post{id='null', titre='null', description='null', prix='null', pseudo='null', emailContact='null', telContact='null', ville='null', cp='null', image='null', date='null'} 下面是一个我必须

我在使用POST请求将数据发布到API时遇到了一些问题。 服务器的响应成功,但响应上显示的所有值均为空:

I/SUCCESS: test : Post{id='null', titre='null', description='null', prix='null', pseudo='null', emailContact='null', telContact='null', ville='null', cp='null', image='null', date='null'}
下面是一个我必须接收的JSON示例

{
"success": true,
"response": {
"id": “5a5f11196c2aa”,
"titre": "Vends 406",
"description": "Pas chere",
"prix": "4500",
"pseudo": "jml",
"emailContact": "",
"telContact": "Vends 406",
"ville": "",
"cp": "",
"images": [],
"date": 1516179737
}
}
以下是我的数据模型:

public class Post {

@SerializedName("cp")
private String cp;
@SerializedName("date")
private Long date;
@SerializedName("description")
private String description;
@SerializedName("emailContact")
private String emailContact;
@SerializedName("id")
private String id;
@SerializedName("images")
private String[] images;
@SerializedName("prix")
private String prix;
@SerializedName("pseudo")
private String pseudo;
@SerializedName("telContact")
private String telContact;
@SerializedName("titre")
private String titre;
@SerializedName("ville")
private String ville;

public String getCp() {
    return cp;
}

public void setCp(String cp) {
    this.cp = cp;
}

public Long getDate() {
    return date;
}

public void setDate(Long date) {
    this.date = date;
}

public String getDescription() {
    return description;
}

public void setDescription(String description) {
    this.description = description;
}

public String getEmailContact() {
    return emailContact;
}

public void setEmailContact(String emailContact) {
    this.emailContact = emailContact;
}

public String getId() {
    return id;
}

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

public String[] getImages() {
    return images;
}

public void setImages(String[] images) {
    this.images = images;
}

public String getPrix() {
    return prix;
}

public void setPrix(String prix) {
    this.prix = prix;
}

public String getPseudo() {
    return pseudo;
}

public void setPseudo(String pseudo) {
    this.pseudo = pseudo;
}

public String getTelContact() {
    return telContact;
}

public void setTelContact(String telContact) {
    this.telContact = telContact;
}

public String getTitre() {
    return titre;
}

public void setTitre(String titre) {
    this.titre = titre;
}

public String getVille() {
    return ville;
}

public void setVille(String ville) {
    this.ville = ville;
}

@Override
public String toString(){
    return "Post{" +
            "id='" + getId() + '\'' +
            ", titre='" + getTitre() + '\'' +
            ", description='" + getDescription() + '\'' +
            ", prix='" + getPrix() + '\'' +
            ", pseudo='" + getPseudo() + '\'' +
            ", emailContact='" + getEmailContact() + '\'' +
            ", telContact='" + getTelContact() + '\'' +
            ", ville='" + getVille() + '\'' +
            ", cp='" + getCp() + '\'' +
            ", image='" + getImages() + '\'' +
            ", date='" + getDate() + '\'' +
            '}';
}}
以下是我的改装实例:

retrofit = new Retrofit.Builder()
                .baseUrl(baseUrl)
                .addConverterFactory(GsonConverterFactory.create(new GsonBuilder().serializeNulls().create()))
                .build();
这是我的API服务接口:

public interface APIService {
@POST("/android-api")
@FormUrlEncoded
Call<Post> savePost(@Field("apikey") String apikey,
                       @Field("method") String method,
                       @Field("titre") String title,
                       @Field("description") String description,
                       @Field("prix") String prix,
                       @Field("pseudo") String pseudo,
                       @Field("emailContact") String emailContact,
                       @Field("telContact") String telContact,
                       @Field("ville") String ville,
                       @Field("cp") String cp,
                       @Field("images") String[] images
                    );}
下面是我的sendPost方法:

public void sendPost(String title, String prix, String cp, String ville, String description) {

    // On récupère ici les préférences de l'utilisateur
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
    String pseudo = preferences.getString("pseudo", "DEFAULT");
    String emailContact = preferences.getString("mail", "DEFAULT");
    String telContact = preferences.getString("tel", "DEFAULT");

    // Provisoire
    String[] images = {} ;

    mAPIService.savePost(APIKEY,METHOD,title,description,prix,pseudo,emailContact,telContact,ville,cp,images).enqueue(new Callback<Post>() {
        @Override
        public void onResponse(Call<Post> call, Response<Post> response) {

            if(response.isSuccessful()) {
                showResponse(response.body().toString());
                Log.i("SUCCESS", "test : "+ response.body().toString());
            }
        }

        @Override
        public void onFailure(Call<Post> call, Throwable t) {
            Log.e("FAIL", "Unable to submit post to API.");
        }
    });}

提前感谢您帮助我

我最近使用改装检索数据。。。 首先用于根据可能的结果JSON响应创建模型类

我用了一个改造实例-

HttpLoggingInterceptor=新的HttpLoggingInterceptor; interceptor.setLevelHttpLoggingInterceptor.Level.BODY; OkHttpClient客户端= 新建OkHttpClient.Builder.AddInterceptor Interceptor.build

        retrofit = new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .addConverterFactory(GsonConverterFactory.create())
                .client(client)
                .build(); 

非常感谢。日志对我帮助很大,我发现了错误,这要归功于此: