Как анализировать данные из JSON (URL) и отправлять данные в URL - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь отправить данные в URL, откуда я анализирую данные JSON, и я хочу знать, можем ли мы редактировать данные JSON в URL, если мы создали случайное хранилище JSON с myjson.com или нам нужно сохранить собственный сервер для редактированияjson data.Here я создал случайное хранилище json, и я анализирую данные с этого URL, и я также хотел отредактировать данные в URL, что является проблемой, которую я не смог сделать. Не работает. Пожалуйста, помогите ???Это была структура

[{"name": "pavan", "hit": true}]

это был код mainactivity, из которого fetchdata выполняется в фоновом режиме

public class MainActivity extends AppCompatActivity {

    Button click;
    public static TextView data;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        click=(Button)findViewById(R.id.button);
        data=(TextView)findViewById(R.id.fetcheddata);
        click.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                fetchdata process=new fetchdata();
                process.execute();
            }
        });


    }
}

Это класс fetchdata, из которого происходит выборка данных из url и отображение в текстовом представлении mainactivity

public class fetchdata extends AsyncTask<Void,Void,Void> {
    String data="";
    String dataparsed="";
    String singleparsed="";
    boolean flag=false;
    @Override
    protected Void doInBackground(Void... params) {

        try {
            URL url=new URL("https://api.myjson.com/bins/1854yb");
            HttpURLConnection httpURLConnection=(HttpURLConnection) url.openConnection();
            InputStream inputStream=httpURLConnection.getInputStream();
            BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));
            String line="";
            while (line!=null)
            {
                line=bufferedReader.readLine();
                data=data+line;
            }
            JSONArray JA=new JSONArray(data);
            for(int i=0;i<JA.length();i++)
            {
                JSONObject JO= (JSONObject) JA.get(i);
                singleparsed="Name:"+JO.get("name")+"\n"+"Feed key:"+JO.get("hit");
                dataparsed=dataparsed+singleparsed;
            }


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

        return null;
    }

    @Override
    protected void onPostExecute(Void result) {

        super.onPostExecute(result);
        MainActivity.data.setText(this.dataparsed);
        JSONObject postData = new JSONObject();
        try {
            postData.put("name","sai");
            postData.put("hit", false);

            new senddata().execute("https://api.myjson.com/bins/1854yb", postData.toString());
        } catch (JSONException e) {
            e.printStackTrace();
        }


    }
}

Это senddata для URL-кода из postexecute fetchdata, который выполнялся и ничего не происходитв URL, пожалуйста, помогите, я работаю над этим с 3 дней

public class senddata extends AsyncTask<String,Void, String> {

    String data="";
    String dataparsed="";
    String singleparsed="";
    boolean flag=false;

    @Override
    protected String doInBackground(String... params) {

        String data = "";
        HttpURLConnection httpURLConnection = null;
        try {

            httpURLConnection = (HttpURLConnection) new URL(params[0]).openConnection();
            httpURLConnection.setRequestMethod("POST");

            httpURLConnection.setDoOutput(true);

            DataOutputStream wr = new DataOutputStream(httpURLConnection.getOutputStream());
            wr.writeBytes("PostData=" + params[1]);
            wr.flush();
            wr.close();

            InputStream in = httpURLConnection.getInputStream();
            InputStreamReader inputStreamReader = new InputStreamReader(in);

            int inputStreamData = inputStreamReader.read();
            while (inputStreamData != -1) {
                char current = (char) inputStreamData;
                inputStreamData = inputStreamReader.read();
                data += current;
            }
            dataparsed=data;

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (httpURLConnection != null) {
                httpURLConnection.disconnect();
            }
        }

        return data;
    }
    @Override
    protected void onPostExecute(String result) {

        super.onPostExecute(result);
        Log.e("TAG", result);



    }

}

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

Я думаю, у вас есть проблемы с myJson при создании API. Если вы новичок в Android, вы также можете попробовать Ссылка для готового Api для Android

Они создали различные виды Apis для понимания концепции json.

также получить обновление о PostMan Ссылка для почтальона

0 голосов
/ 06 июня 2019

Этот API не принимает никаких параметров после своего URL. Это метод get Api, а не метод post. Попробуйте запустить его методом post в postman, он выдаст ошибку. Если вы запустите метод get, он выдаст тот же результат, даже если вы добавите что-то после URL: - "https://api.myjson.com/bins/1854yb"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...