Android에서 PHP URL로 JSON 데이터를 보내는 방법은 무엇입니까?

깨어나 다

내 앱에서 php url로 로그인 정보를 보내고 싶습니다.이 내 앱이 충돌하므로 누구든지 이것을 slove하는 데 도움이 될 수 있습니다.

이것은 내 서버 로그인 방법입니다. 이 로그인 방법으로 데이터를 보내고 싶습니다 ..

   Method [  public method login ] {

      - Parameters [3] {
        Parameter #0 [  $user_auth ]
        Parameter #1 [  $application ]
        Parameter #2 [  $name_value_list = Array ]
      }
    }

이것은 안드로이드 앱의 내 login.java입니다.

public class Login extends ActionBarActivity implements View.OnClickListener {

    EditText userName, pass;
    Button login;

    private ProgressDialog pDialog;

    JSONParser jsonParser = new JSONParser();

    private static final String LOGIN_URL = "http://crm.demo.com/service/v4_1/rest.php/login";

    private static final String TAG_SUCCESS = "sucess";
    private static final String TAG_MESSAGE = "message";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);

        userName = (EditText) findViewById(R.id.editText_userN);
        pass = (EditText) findViewById(R.id.editText_pass);
        login = (Button) findViewById(R.id.btn_login);

        login.setOnClickListener(this);
    }


    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        Log.d("v", "Login button clicked");

        new AttemptLogin().execute();
    }

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

        @Override
        protected void onPreExecute() {
        super.onPreExecute();
        pDialog = new ProgressDialog(Login.this);
        pDialog.setMessage("Attempting login..");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(true);
        pDialog.show();
        pDialog.dismiss();
        }

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

             // Check for success tag
            int success;
            String user_auth[];
            String user_name = userName.getText().toString();
            String password = pass.getText().toString();
            String application = "wakensys";
            String name_value_list[];
            String language = "en-au";
            String notifyonsave = "true";

            try {
                // Building Parameters
                List<NameValuePair> params = new ArrayList<NameValuePair>();
                params.add(new BasicNameValuePair("user_auth[]", user_name));
                params.add(new BasicNameValuePair("user_auth[]", password));
                params.add(new BasicNameValuePair("application", application));
                params.add(new BasicNameValuePair("name_value_list[]", language));
                params.add(new BasicNameValuePair("name_value_list[]", notifyonsave));


                Log.d("request!", "starting..");
                Log.i("NameValuePair", params.toString());
                // getting product details by making HTTP request
                JSONObject json = jsonParser.makeHttpRequest(LOGIN_URL, "POST", params);
                if(json == null)
                    return null;

                // check your log for json response
                Log.d("Login attempt", json.toString());

                // json success tag
                success = json.getInt(TAG_SUCCESS);
                if (success == 1) {
                    Log.d("Login Successful!", json.toString());
                    Intent i = new Intent(Login.this, Success.class);
                    finish();
                    startActivity(i);
                    return json.getString(TAG_MESSAGE);
                }else{
                    Log.d("Login Failure!", json.getString(TAG_MESSAGE));
                    return json.getString(TAG_MESSAGE);

                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
            return null;
        }
        /**
         * After completing background task Dismiss the progress dialog
         * **/
        protected void onPostExecute(String file_url) {
            // dismiss the dialog once product deleted
            pDialog.dismiss();
            if (file_url != null){
                Toast.makeText(Login.this, file_url, Toast.LENGTH_LONG).show();
            }
        }
    }
}

-새 logcat ---

11-21 10:33:34.467: D/v(4400): Login button clicked
11-21 10:33:34.496: D/request!(4400): starting..
11-21 10:33:34.496: I/NameValuePair(4400): [user_auth=dghj, user_auth=ccbj, name_value_list=EN]
11-21 10:33:36.528: E/JSON Parser(4400): Error parsing data org.json.JSONException: Value <pre> of type java.lang.String cannot be converted to JSONObject
11-21 10:33:36.531: E/AndroidRuntime(4400): FATAL EXCEPTION: AsyncTask #1
11-21 10:33:36.531: E/AndroidRuntime(4400): Process: com.wakensys.sugercrm, PID: 4400
11-21 10:33:36.531: E/AndroidRuntime(4400): java.lang.RuntimeException: An error occured while executing doInBackground()
11-21 10:33:36.531: E/AndroidRuntime(4400):     at android.os.AsyncTask$3.done(AsyncTask.java:300)
11-21 10:33:36.531: E/AndroidRuntime(4400):     at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
11-21 10:33:36.531: E/AndroidRuntime(4400):     at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
11-21 10:33:36.531: E/AndroidRuntime(4400):     at java.util.concurrent.FutureTask.run(FutureTask.java:242)
11-21 10:33:36.531: E/AndroidRuntime(4400):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
11-21 10:33:36.531: E/AndroidRuntime(4400):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
11-21 10:33:36.531: E/AndroidRuntime(4400):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
11-21 10:33:36.531: E/AndroidRuntime(4400):     at java.lang.Thread.run(Thread.java:818)
11-21 10:33:36.531: E/AndroidRuntime(4400): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String org.json.JSONObject.toString()' on a null object reference
11-21 10:33:36.531: E/AndroidRuntime(4400):     at com.wakensys.sugercrm.Login$AttemptLogin.doInBackground(Login.java:116)
11-21 10:33:36.531: E/AndroidRuntime(4400):     at com.wakensys.sugercrm.Login$AttemptLogin.doInBackground(Login.java:1)
11-21 10:33:36.531: E/AndroidRuntime(4400):     at android.os.AsyncTask$2.call(AsyncTask.java:288)
11-21 10:33:36.531: E/AndroidRuntime(4400):     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
11-21 10:33:36.531: E/AndroidRuntime(4400):     ... 4 more

제발 도와주세요!

JOSONparser.java

public class JSONParser {

    static InputStream is = null;
    static JSONObject jObj = null;
    static String json = "";

    // constructor
    public JSONParser() {

    }


    public JSONObject getJSONFromUrl(final String url) {

        // Making HTTP request
        try {
            // Construct the client and the HTTP request.
            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(url);

            // Execute the POST request and store the response locally.
            HttpResponse httpResponse = httpClient.execute(httpPost);
            // Extract data from the response.
            HttpEntity httpEntity = httpResponse.getEntity();
            // Open an inputStream with the data content.
            is = httpEntity.getContent();

        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {
            // Create a BufferedReader to parse through the inputStream.
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    is, "iso-8859-1"), 8);
            // Declare a string builder to help with the parsing.
            StringBuilder sb = new StringBuilder();
            // Declare a string to store the JSON object data in string form.
            String line = null;

            // Build the string until null.
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }

            // Close the input stream.
            is.close();
            // Convert the string builder data to an actual string.
            json = sb.toString();
        } catch (Exception e) {
            Log.e("Buffer Error", "Error converting result " + e.toString());
        }

        // Try to parse the string to a JSON object
        try {
            jObj = new JSONObject(json);
        } catch (JSONException e) {
            Log.e("JSON Parser", "Error parsing data " + e.toString());
        }

        // Return the JSON Object.
        return jObj;

    }


    // function get json from url
    // by making HTTP POST or GET mehtod
    public JSONObject makeHttpRequest(String url, String method,
            List<NameValuePair> params) {

        // Making HTTP request
        try {

            // check for request method
            if(method == "POST"){
                // request method is POST
                // defaultHttpClient
                DefaultHttpClient httpClient = new DefaultHttpClient();
                HttpPost httpPost = new HttpPost(url);
                httpPost.setEntity(new UrlEncodedFormEntity(params));

                HttpResponse httpResponse = httpClient.execute(httpPost);
                HttpEntity httpEntity = httpResponse.getEntity();
                is = httpEntity.getContent();

            }else if(method == "GET"){
                // request method is GET
                DefaultHttpClient httpClient = new DefaultHttpClient();
                String paramString = URLEncodedUtils.format(params, "utf-8");
                url += "?" + paramString;
                HttpGet httpGet = new HttpGet(url);

                HttpResponse httpResponse = httpClient.execute(httpGet);
                HttpEntity httpEntity = httpResponse.getEntity();
                is = httpEntity.getContent();
            }           

        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            json = sb.toString();
        } catch (Exception e) {
            Log.e("Buffer Error", "Error converting result " + e.toString());
        }

        // try parse the string to a JSON object
        try {
            jObj = new JSONObject(json);
        } catch (JSONException e) {
            Log.e("JSON Parser", "Error parsing data " + e.toString());
        }

        // return JSON String
        return jObj;

    }
}
사집 아카 랴

이런 식으로 코드를 시도해 볼 수 있으며 나에게 완벽하게 작동합니다.

public class Login extends ActionBarActivity
{
    EditText tv, tv2;
    String email;
    int a;
    String password;

    JSONParser jsonParser = new JSONParser();

    private ProgressDialog dialog;

    private static String register_user = "your link here";

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
          super.onCreate(savedInstanceState);

          setContentView(R.layout.activity_login);

          tv = (EditText) findViewById(R.id.editText1);
          tv2 = (EditText) findViewById(R.id.editText2);
    }

    public void Login(View view)
    {
          email = tv.getText().toString().trim();
          password = tv2.getText().toString();

          if(TextUtils.isEmpty(email) || TextUtils.isEmpty(password))
          {
                if(TextUtils.isEmpty(email))
                {
                    tv.setError("This field cannot be empty");
                }
                if(TextUtils.isEmpty(password))
                {
                    tv2.setError("This field cannot be empty");
                }
            }
            else
            {
                //build Params
                List<NameValuePair> params = new ArrayList<NameValuePair>();
                params.add(new BasicNameValuePair("email", email));
                params.add(new BasicNameValuePair("password", password));

                CreateNewProduct productTask = new CreateNewProduct(params);
                productTask.execute();
            }
    }

    class CreateNewProduct extends AsyncTask<String, String, JSONObject>
    {
         List<NameValuePair> params;

         public CreateNewProduct(List<NameValuePair> params)
        {
             this.params = params;
        }

        protected void onPreExecute()
        {
            super.onPreExecute();
            dialog = new ProgressDialog(Login.this);
            dialog.setMessage("We are Logging in. Please wait . . .");
            dialog.setIndeterminate(false);
            dialog.setCancelable(false);
            dialog.show();
        }

        protected JSONObject doInBackground(String... args)
        {
             JSONObject json = jsonParser.makeHttpRequest(register_user, "POST", this.params);

             return json;
        }

        protected void onPostExecute(JSONObject result)
        {
               dialog.dismiss();
              //this assumes that the response looks like this:
              //{"success" : true }
              String message = null;
              try {
                  message = result.getString("message");
              } catch (JSONException e1) {
                  // TODO Auto-generated catch block
                  e1.printStackTrace();
              }
              boolean success = false;
              try {
                success = result.getBoolean("success");
              } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
              }
              Toast.makeText(getBaseContext(), success ? "We are good to go." : "Something went wrong!", 
              Toast.LENGTH_SHORT).show();
              Toast.makeText(getBaseContext(), message, Toast.LENGTH_LONG).show();
        }
    }
}

이제 성공 가치에 따라 특정 조치를 취할 수 있습니다. PHP 스크립트에서 다른 JSON 출력 조합을 시도 할 수도 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Android에서 PHP URL로 JSON 데이터를 보내는 방법은 무엇입니까?

분류에서Dev

PHP를 통해 PostgreSQL에서 Android로 데이터를 보내는 방법은 무엇입니까?

분류에서Dev

Ajax를 사용하여 JSON으로 다중 데이터를 보내는 방법과 PHP에서 수신하는 방법은 무엇입니까?

분류에서Dev

PHP에서 Java / Android로 데이터를 보내고 검색하는 방법은 무엇입니까?

분류에서Dev

Node js 서버에서 클라이언트로 json 데이터를 보내는 방법은 무엇입니까?

분류에서Dev

여러 json 객체의 데이터를 Android의 서버로 보내는 방법은 무엇입니까?

분류에서Dev

PHP로 배열 / JSON에서 복잡한 데이터를 읽는 방법은 무엇입니까?

분류에서Dev

PHP에서 JSON 데이터를 배열로 변환하는 방법은 무엇입니까?

분류에서Dev

json 데이터를 서버에 보내고 Android에서 Json 응답을 얻는 방법은 무엇입니까?

분류에서Dev

android에서 post 메소드를 사용하여 json 데이터를 보내는 방법은 무엇입니까?

분류에서Dev

URL에서 데이터를 가져 와서 json으로 변환하는 방법은 무엇입니까?

분류에서Dev

curl get으로 PHP의 API에서 데이터베이스에 json 데이터를 저장하는 방법은 무엇입니까?

분류에서Dev

JSON 또는 양식 데이터? 데이터를 서버로 다시 보내는 데 선호되는 방법은 무엇입니까?

분류에서Dev

데이터베이스에서 PHP로 JSON 값만 검색하는 방법은 무엇입니까?

분류에서Dev

웹 서버에서 Android 앱으로 데이터를 보내는 방법은 무엇입니까?

분류에서Dev

Android 애플리케이션에서 SOAP Webservice로 데이터를 보내는 방법은 무엇입니까?

분류에서Dev

json으로 laravel의 데이터베이스에서 데이터를 얻는 방법은 무엇입니까?

분류에서Dev

(android) DialogFragment에서 Activity로 데이터를 보내는 방법은 무엇입니까?

분류에서Dev

Android에서 페어링 된 장치로 데이터 (문자열)를 보내는 방법은 무엇입니까?

분류에서Dev

jquery에서 양식 데이터를 JSON (초보자)으로 변환하는 방법은 무엇입니까?

분류에서Dev

헤더 내용 유형 json 데이터를 PHP의 csv 파일에 쓰는 방법은 무엇입니까?

분류에서Dev

PHP로 json에서 요소를 얻는 방법은 무엇입니까?

분류에서Dev

드롭 다운 목록에서 검색된 값의 ID를 데이터베이스에서 PHP 파일로 보내는 방법은 무엇입니까?

분류에서Dev

Android에서 JSON으로 파일을 보내는 방법은 무엇입니까?

분류에서Dev

Android에서 JSON으로 파일을 보내는 방법은 무엇입니까?

분류에서Dev

NavigationLInk 101 : 호스트에서 보조보기로 데이터를 보내는 방법은 무엇입니까?

분류에서Dev

빈 테이블로 mysql에서 데이터베이스를 내보내는 방법은 무엇입니까?

분류에서Dev

모달에서 얻은 데이터를 기본보기로 보내는 방법은 무엇입니까?

분류에서Dev

Dialogflow Essentials에서 Dialogflow CX로 에이전트 데이터를 내보내는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    Android에서 PHP URL로 JSON 데이터를 보내는 방법은 무엇입니까?

  2. 2

    PHP를 통해 PostgreSQL에서 Android로 데이터를 보내는 방법은 무엇입니까?

  3. 3

    Ajax를 사용하여 JSON으로 다중 데이터를 보내는 방법과 PHP에서 수신하는 방법은 무엇입니까?

  4. 4

    PHP에서 Java / Android로 데이터를 보내고 검색하는 방법은 무엇입니까?

  5. 5

    Node js 서버에서 클라이언트로 json 데이터를 보내는 방법은 무엇입니까?

  6. 6

    여러 json 객체의 데이터를 Android의 서버로 보내는 방법은 무엇입니까?

  7. 7

    PHP로 배열 / JSON에서 복잡한 데이터를 읽는 방법은 무엇입니까?

  8. 8

    PHP에서 JSON 데이터를 배열로 변환하는 방법은 무엇입니까?

  9. 9

    json 데이터를 서버에 보내고 Android에서 Json 응답을 얻는 방법은 무엇입니까?

  10. 10

    android에서 post 메소드를 사용하여 json 데이터를 보내는 방법은 무엇입니까?

  11. 11

    URL에서 데이터를 가져 와서 json으로 변환하는 방법은 무엇입니까?

  12. 12

    curl get으로 PHP의 API에서 데이터베이스에 json 데이터를 저장하는 방법은 무엇입니까?

  13. 13

    JSON 또는 양식 데이터? 데이터를 서버로 다시 보내는 데 선호되는 방법은 무엇입니까?

  14. 14

    데이터베이스에서 PHP로 JSON 값만 검색하는 방법은 무엇입니까?

  15. 15

    웹 서버에서 Android 앱으로 데이터를 보내는 방법은 무엇입니까?

  16. 16

    Android 애플리케이션에서 SOAP Webservice로 데이터를 보내는 방법은 무엇입니까?

  17. 17

    json으로 laravel의 데이터베이스에서 데이터를 얻는 방법은 무엇입니까?

  18. 18

    (android) DialogFragment에서 Activity로 데이터를 보내는 방법은 무엇입니까?

  19. 19

    Android에서 페어링 된 장치로 데이터 (문자열)를 보내는 방법은 무엇입니까?

  20. 20

    jquery에서 양식 데이터를 JSON (초보자)으로 변환하는 방법은 무엇입니까?

  21. 21

    헤더 내용 유형 json 데이터를 PHP의 csv 파일에 쓰는 방법은 무엇입니까?

  22. 22

    PHP로 json에서 요소를 얻는 방법은 무엇입니까?

  23. 23

    드롭 다운 목록에서 검색된 값의 ID를 데이터베이스에서 PHP 파일로 보내는 방법은 무엇입니까?

  24. 24

    Android에서 JSON으로 파일을 보내는 방법은 무엇입니까?

  25. 25

    Android에서 JSON으로 파일을 보내는 방법은 무엇입니까?

  26. 26

    NavigationLInk 101 : 호스트에서 보조보기로 데이터를 보내는 방법은 무엇입니까?

  27. 27

    빈 테이블로 mysql에서 데이터베이스를 내보내는 방법은 무엇입니까?

  28. 28

    모달에서 얻은 데이터를 기본보기로 보내는 방법은 무엇입니까?

  29. 29

    Dialogflow Essentials에서 Dialogflow CX로 에이전트 데이터를 내보내는 방법은 무엇입니까?

뜨겁다태그

보관