Как отправить байтовый массив внутри вложенного объекта json с запросом на запись залпа? - PullRequest
0 голосов
/ 30 декабря 2018

У меня есть объект json, содержащий сведения о форме оценки и массив json, в котором содержится информация о вопросах оценки (например, questionId, описание ответа, загруженное пользователем изображение для некоторых вопросов).Я хочу отправить эту оценочную информацию на сервер с библиотекой залпа.Для этого я готовлю объект json, как показано ниже:

{"evaluation":{"UserID":1,"EvaluationDate":"2018\/29\/12","EvaluationDetailsList":
[{"QuestionID":1,"Description":null,"Image":null,"PercentScore":0,"QuestionResponseID":3},
"QuestionID":2,"Description":null,"Image":null,"PercentScore":0,"QuestionResponseID":3},
"QuestionID":3,"Description":null,"Image":null,"PercentScore":0,"QuestionResponseID":3},
{"QuestionID":4,"Description":null,"Image":"B@927f5e6","PercentScore":0,"QuestionResponseID":3}]}}

EvaluationDetailsList - это мой массив Json с вопросом оценки.Когда я отправляю запрос post с нулевым полем Image, код работает правильно, но когда я помещаю байтовый массив в поле Image, я получаю сообщение об ошибке.Я гуглил о том, как отправить байтовый массив на веб-сервер с залпом.В ответах использовался MultiPartRequest из залпа.Но я не знаю, как использовать этот метод запроса, когда поле Image находится во вложенном объекте json.Вот мой запрос для отправки на сервер:

public void sendEvalResult(final JSONObject jsonObject, final ResultCallBack resultCallBack){
        JSONObject finalObject=new JSONObject();
        try {
            finalObject.put("evaluation",jsonObject);
        } catch (JSONException e) {
            e.printStackTrace();
        }
        JsonObjectRequest req=new JsonObjectRequest(Request.Method.POST, Post_Evaluation_Result, finalObject,new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                resultCallBack.onGetResult(null);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                resultCallBack.onFailedGet();
            }
        }){
            @Override
            public String getBodyContentType() {
                return "application/json;";
            }
        };

        AppSingleton.getInstance(context).addToRequestQueue(req,"PostResult");}

помогите пожалуйста

...