如何在android中使用http post传递json原始数据

如何在android中使用http post传递json原始数据,android,Android,我只想将json原始数据传递给httpclient。基本上,我想要的是我的http客户端使用并生成application/json 如何传递以下值 Basic Auth: username: ******* password: ******* POST URL: http://casetestbu.com/c****butest/services/photos/upload Headers Content-Type:application/json Raw Data: {"eventId":4,

我只想将json原始数据传递给httpclient。基本上,我想要的是我的http客户端使用并生成application/json

如何传递以下值

Basic Auth:
username: *******
password: *******
POST URL: http://casetestbu.com/c****butest/services/photos/upload
Headers Content-Type:application/json
Raw Data:
{"eventId":4,"eventDescription":"grtrt","fileName":"test5.jpg","fileType":"jpg","imageData":"/9j/4AAQSkZJRgABAgAAAQABAAD/gAEKgD/4gIcSUN"};

你能帮我剪一些代码吗?

只需声明上面的变量即可

public void onClick(View view) {

        switch(view.getId())
        {




            case R.id.btnSingIn:





                  JSONObject login = new JSONObject();
                try
                {
                login.put("Username", editText1.getText().toString());
                login.put("Password", editText2.getText().toString());

                JSONObject finaldata = new JSONObject();
                finaldata.put("LoginRequest", login);
//               Toast.makeText(getBaseContext(), finaldata.toString(), Toast.LENGTH_LONG).show();


                  final ConnectToServer connect = new ConnectToServer();
                connect.extConnectToServer(MainActivity.this,new ConnectToServer.Callback() 

                {
                    public void callFinished(String result)
                    {
                        //Toast.makeText(getBaseContext(), result, Toast.LENGTH_LONG).show();

                        JSONObject resp = null;
                        try 
                        {
                            resp = new JSONObject(result);
                            //Toast.makeText(getBaseContext(), result, Toast.LENGTH_LONG).show();
                            JSONObject Login1Result = resp.getJSONObject("LoginResult");
                            String strMessage = Login1Result.getString("EmployeeID");

                        JSONObject status = Login1Result.getJSONObject("status");
//                      Toast.makeText(getBaseContext(), status.getString("message"), Toast.LENGTH_LONG).show();
                        if (status.getString("message").equalsIgnoreCase("OK"))
                        {
//                            Toast.makeText(getBaseContext(), strMessage, Toast.LENGTH_LONG).show();

                           Intent i = new Intent(getApplicationContext(), Tabs.class);
                           i.putExtra("new_variable_name",strMessage);
                           startActivity(i);  

                            }
                            else
                            {
                            Toast.makeText(getBaseContext(),  status.getString("message"), Toast.LENGTH_LONG).show();


                            }


                        }

                        catch (final JSONException e)
                        {

                        }

                    }
                            }, "www.Your url whatever it is.com", finaldata,
                        "POST");
                    connect.execute(finaldata);

                }
                 catch (Exception e) {
                    Log.d("InputStream", e.getLocalizedMessage());
               }

            break;
        }
        }
        }
    }

别忘了将aynctask类添加到您的项目中,并在onCreate中声明editText及其按钮。有关详细信息,请使用AsyncTask类的链接并获得正确的基础知识探索该链接切勿使用AsynTask执行网络请求或任何需要持久化的内容。异步任务与您的活动密切相关,如果用户在重新创建应用程序后更改屏幕方向,则异步任务将停止。AsyncTasks理想情况下应用于短期操作(最多几秒钟)。如果您需要让线程长时间运行,强烈建议您使用java.util.concurrent pacakge提供的各种API,如Executor、ThreadPoolExecutor和FutureTask。先生,您能解释一下asynktask的一个好替代方案吗。?我对android和学习都是新手。你能给我一些关于executer线程池executer和未来任务的链接吗