我正在尝试使用Retrofit发布原始数据。
我在Body中使用volley发现了许多POST JSON解决方案,但我发送的数据不是JSON。 我的数据是: {project_purpose:[EXECUTION]}
从邮递员那里来的时候,我得到了数据但不是在android中。请建议我如何做到这一点。
我正在尝试以字符串形式发送,但在错误代码中获得500
我也在JsonObject中发送数据,但没有工作..
这是我要调用的代码..
String bodyST = "{project_purpose: [purpose]}";
OR
JsonObject data = new JsonObject();
JSONArray jarray = new JSONArray();
jarray.put("EXECUTION");
data.addProperty("project_purpose", String.valueOf(jarray));
Call<JsonArray> call = apiInterface.getData(mAuthToken, "application/json", bodyST);
答案 0 :(得分:0)
在尝试 仅以原始格式发布数据 时,我遇到了同样的问题,为此,在我获得解决方案后,我浪费了一整天。< / p>
您的API界面应如下所示: -
@POST(Constants.CONTACTS_URL)
Call<Object> getUser(@Body Map<String, String> body);
在你打电话给你的班级
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constants.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
ApiInterface apiInterface = retrofit.create(ApiInterface.class);
try {
Map<String, String> requestBody = new HashMap<>();
requestBody.put("email", "davinder.codeapex@gmail.com");
requestBody.put("password", "12345678");
Call<Object> call=apiInterface.getUser(requestBody);
call.enqueue(new Callback<Object>() {
@Override
public void onResponse(Call<Object> call, Response<Object> response) {
try {
JSONObject object=new JSONObject(new Gson().toJson(response.body()));
Log.e("TAG", "onResponse: "+object );
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void onFailure(Call<Object> call, Throwable t) {
}
});
} catch (Exception e) {
e.printStackTrace();
}
输出
logcat的: fully compliant, but not working with these tools
注意: - 我没有使用任何模型类来获取数据,检索您可以用来存储数据的数据。