JSON Нет значения для результата - PullRequest
0 голосов
/ 16 марта 2020

, так как я новичок в Android Studio и у меня есть скрипт, который работал как шарм в php 7, но проблема возникает, когда я использую php 5.2. Проблема только в том, что я делаю INSERT или UPDATE Data из Android Studio до PHP, используя okhttp. Нет проблем на ВЫБРАТЬ или УДАЛИТЬ. и у меня есть маршрутизатор. php (я проверяю свой маршрутизатор. php в бессоннице, он работает хорошо):

{
  "action": "QueryKontakS",
  "method": "createRecord",
  "result": {
    "nama": "test",
    "email": "",
    "notelp": "",
    "alamat": "",
    "success": 1,
    "msgfilektp": "tidak menulis file"
  }
}

Вот мой java код, подключенный к маршрутизатору. php

void update(){
        if (!isFinishing()) {
            pDialog = new ProgressDialog(KontakActivity.this);
            pDialog.setMessage("Please wait....");
            pDialog.setIndeterminate(true);
            pDialog.setCancelable(true);
            pDialog.show();
        }
        JSONObject json = new JSONObject();
        JSONObject filenya = new JSONObject();
        try {
            Log.i("file ", "JSONnya disini"+json);
            try {
                JSONObject jsonParam = new JSONObject();
                jsonParam.put("action", "QueryKontakS");
                if(edit) {
                    jsonParam.put("method", "updateRecord");
                }else{
                    jsonParam.put("method", "createRecord");
                }

                JSONObject data = new JSONObject();
                if (edit){
                    data.put("idkontak", idkontak);
                }
                if (!(photoPath ==null) && !photoPath.equalsIgnoreCase("")){
                    filenya.put("namafoto", photoPath);
                    data.put("foto", file+".jpg");

                }
                data.put("nama", nama.getText().toString());
                data.put("email", email.getText().toString());
                data.put("notelp", notelp.getText().toString());
                data.put("alamat", alamat.getText().toString());
                JSONArray arr2 = new JSONArray();
                arr2.put(data);
                jsonParam.put("data", arr2);
                json.put("param",jsonParam);
                Log.i("JSON nya: ",json.toString());
                Log.i("Filenya: ",filenya.toString());
            } catch (JSONException e) {
                e.printStackTrace();
            }
            RP = new RequestPost("router.php",json,filenya,  getApplicationContext());
            RP.execPostuploadCall(new Callback() {
                @Override
                public void onFailure(Call call, IOException e) {

                    e.printStackTrace();
                }
                @Override
                public void onResponse(Call call, Response response) throws IOException {
                    Log.i("file ", "Gagal Response disini" + response);
                    if (!response.isSuccessful()) throw new IOException("Unexpected code " + response);
                    final String jsonData = response.body().string();
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
                            try {
                                JSONObject obj = new JSONObject(jsonData);
                                Log.i("file ", "Gagal Disini"+obj);
                                JSONObject result = obj.getJSONObject("result");
                                int success = result.getInt("success");
                                if (success==1){
                                    Intent i = new Intent(KontakActivity.this,MainActivity.class);
                                    startActivity(i);
                                    finish();
                                }else{
                                    Toast t=Toast.makeText(getApplicationContext(),"Gagal menyimpan",Toast.LENGTH_SHORT);
                                    t.show();
                                }
                                if (pDialog != null) pDialog.dismiss();
                            } catch (JSONException e) {
                                if (pDialog != null) pDialog.dismiss();
                                e.printStackTrace();
                            }
                        }
                    });
                }
            });
        } catch (IOException e) {
            if (pDialog != null) pDialog.dismiss();
            e.printStackTrace();
        }
    }

Каждый раз, когда я нажимал кнопку Сохранить, я вижу в logcat

param {"action":"QueryKontakS","method":"createRecord","data":[{"nama":"test","email":"","notelp":"","alamat":""}]}
Content-Disposition: form-data; name="param"
Content-Length: 109
{"action":"QueryKontakS","method":"createRecord","data":[{"nama":"test","email":"","notelp":"","alamat":""}]}

Но, в конце концов, он продолжает давать мне

{"type":"exception","message":"Call to undefined action: ","where":"everywhere"}
org.json.JSONException: No value for result

Я думаю JSON уже отправил запрос JSON, но результат мне ничего не дал. Кажется, что все запросы на вставку и обновление имели исключение. Может ли кто-нибудь здесь помочь мне в чем моя ошибка.

...