如何使用Retrofit发布(x-www-form-urlencoded)Json数据?

时间:2018-04-02 09:09:30

标签: android json retrofit2

当我在body(x-www-form-urlencoded)中发布数据时,它在Postman中工作正常。但是使用Retrofit 2.0 Android它不起作用。

@Headers("Content-Type: application/x-www-form-urlencoded")
@POST("/api/jsonws/pushUserData")
Call<ResponseBody>  pushData(@Body JSONObject jsonObj);

JSONObject jsonObject = new JSONObject();
        try {
            jsonObject.put("role","owner");
            jsonObject.put("id","27001");

        } catch (JSONException e) {
            e.printStackTrace();
        }

        ApiInterface apiInterface1= ApiClient.getClientAuthentication().create(ApiInterface.class);
        Call<ResponseBody> responseBodyCall = apiInterface1.pushData(jsonObject);

此代码不起作用。我也尝试@FormUrlEncoded。

1 个答案:

答案 0 :(得分:5)

尝试使用@FormUrlEncoded并使用@Field代替@Body

@FormUrlEncoded
@POST("/api/jsonws/pushUserData")
Call<ResponseBody>  pushData(@Field("role") String role, @Field("id") String id);

ApiInterface apiInterface1= ApiClient.getClientAuthentication().create(ApiInterface.class);
Call<ResponseBody> responseBodyCall = apiInterface1.pushData("owner","27001");