首页 > 解决方案 > 我想从android将json文件发送到我的服务器我应该在doInBackground方法中做什么?

问题描述

我的后端是 laravel,我想将 json 文件发送到特定的路线我已经创建了我的 json plz 帮助

public class MainActivity extends AppCompatActivity {
    EditText usernameview;
    EditText passwordview;
    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        usernameview = (EditText)findViewById(R.id.username) ;
        passwordview = (EditText)findViewById(R.id.password) ;

        Button login = (Button) findViewById(R.id.loginid);

 }


 public void senddatatoserver(View v) {

    String username= usernameview.getText().toString();
    String password = passwordview.getText().toString();
    JSONObject login = new JSONObject();

    try {
        login.put("username",username);
        login.put("password",password);
    } catch (JSONException e) {
        e.printStackTrace();
    }

    if (login.length() > 0) {
        new SendDataToServer().execute(String.valueOf(login));
    }
}

这是我发送数据的课程我只想知道我应该在 doinbackground 方法中写什么

class SendDataToServer extends AsyncTask<String,String,String> {

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


    }


    @Override
    protected void onPostExecute(String s) {
    }

}

标签: androidandroid-studioandroid-asynctask

解决方案


您可以使用 volley 发送请求

StringRequest stringRequest = new StringRequest(Request.Method.POST, YOUR_URL,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {

                    for (int i = 0; i < response.length(); i++) {

                        JSONObject json; // convert String to JSONObject
                        try {
                            json = new JSONObject(response);
                            JSONArray jsonArray = json.getJSONArray("data");
                            lyric_string = jsonArray.getJSONObject(0).getString("song_lyric");
                            artist_string = jsonArray.getJSONObject(0).getString("song_artist");
                            //album_string = jsonArray.getJSONObject(0).getString("song_album");
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    //error message
                    dismissDialog();
                    lyric.setText("Sorry No Lyric Found");
                    lyric.setVisibility(View.VISIBLE);
                }
            }) {
        @Override
        protected Map<String, String> getParams() {
            Map<String, String> params = new HashMap<>();
            params.put("song_name", "A song Name");
            return params;
        }

    };
    RequestQueue requestQueue = Volley.newRequestQueue(this);
    requestQueue.add(stringRequest);

推荐阅读