2016-09-25 37 views
1

現在、登録ログインアプリケーションを開発中です。私はこの問題に直面しており、私は問題を解決できる解決策を見つけることができません。誰でもこれについて何か解決策がありますか?ヘルプは非常に高く評価されます。org.json.JSONExceptionを解決する方法:java.lang.String型の値<!DOCTYPEをJSONObjectに変換できません

RegisterActivity.java

public class RegisterActivity extends AppCompatActivity { 
AlertDialog.Builder builder; 

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

    builder = new AlertDialog.Builder(RegisterActivity.this); 
    final EditText etName = (EditText) findViewById(R.id.etName); 
    final EditText etUserName = (EditText) findViewById(R.id.etUserName); 
    final EditText etPassword = (EditText) findViewById(R.id.etPassword); 
    final EditText etAge = (EditText) findViewById(R.id.etAge); 
    final EditText etEmail = (EditText) findViewById(R.id.etEmail); 
    final Button bRegister = (Button) findViewById(R.id.bRegister); 

    bRegister.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      final String name = etName.getText().toString(); 
      final String username = etUserName.getText().toString(); 
      final String password = etPassword.getText().toString(); 
      final int age = Integer.parseInt(etAge.getText().toString()); 
      final String email = etEmail.getText().toString(); 

      if (name.equals("") || username.equals("") || password.equals("") || age == 0 || email.equals("")) { 
       builder.setTitle("Something Went Wrong"); 
       builder.setMessage("Please fill in all the fileds").setPositiveButton("OK", null).create().show(); 

      } else { 

       Response.Listener<String> responseListener = new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 

         try { 
          JSONObject jsonResponse = new JSONObject(response); 
          boolean success = jsonResponse.getBoolean("success"); 

          if (success) { 
           Intent intent = new Intent(RegisterActivity.this, LoginActivity.class); 
           RegisterActivity.this.startActivity(intent); 
          } else { 
           builder = new AlertDialog.Builder(RegisterActivity.this); 
           builder.setMessage("Registration Failed").setNegativeButton("Retry", null).create().show(); 

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


       }; 
       RegisterRequest registerRequest = new RegisterRequest(name, username, password, age, email, responseListener); 
       RequestQueue queue = Volley.newRequestQueue(RegisterActivity.this); 
       queue.add(registerRequest); 


      } 
     } 

    }); 
} 

Register.php

<?php 

    $servername = "mysql6.000webhost.com"; 
    $username = "a5124128_user"; 
    $password = "paddwoed4896"; 
    $dbname = "a5124128_account"; 


    $con = mysqli_connect($servername, $username, $password, $dbname) or die(mysql_error()); 

    $db_selected = mysql_selectdb($con, $dbname); 

    $name = $_POST["name"]; 
    $username = $_POST["username"]; 
    $password = $_POST["password"]; 
    $age = $_POST["age"]; 
    $email = $_POST["email"]; 

    $statement = mysqli_prepare($con, "INSERT INTO user (name, username, password, age, email) VALUES (?, ?, ?, ?, ?)"); 
    mysqli_stmt_bind_param($statement, "sssis", $name, $username, $password, $age, $email); 
    mysqli_stmt_execute($statement); 

    $response = array();; 
    $response["success"] = true; 

    echo json_encode($response); 

?> 

次はlogcat

09-25 15:41:50.697 17259-17259/com.example.chang.e_ktm W/System.err: org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject 
09-25 15:41:50.698 17259-17259/com.example.chang.e_ktm W/System.err:  at org.json.JSON.typeMismatch(JSON.java:111) 
09-25 15:41:50.698 17259-17259/com.example.chang.e_ktm W/System.err:  at org.json.JSONObject.<init>(JSONObject.java:160) 
09-25 15:41:50.698 17259-17259/com.example.chang.e_ktm W/System.err:  at org.json.JSONObject.<init>(JSONObject.java:173) 
09-25 15:41:50.698 17259-17259/com.example.chang.e_ktm W/System.err:  at com.example.chang.e_ktm.RegisterActivity$1$1.onResponse(RegisterActivity.java:78) 
09-25 15:41:50.698 17259-17259/com.example.chang.e_ktm W/System.err:  at com.example.chang.e_ktm.RegisterActivity$1$1.onResponse(RegisterActivity.java:73) 
09-25 15:41:50.699 17259-17259/com.example.chang.e_ktm W/System.err:  at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:67) 
09-25 15:41:50.699 17259-17259/com.example.chang.e_ktm W/System.err:  at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30) 
09-25 15:41:50.699 17259-17259/com.example.chang.e_ktm W/System.err:  at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99) 
09-25 15:41:50.699 17259-17259/com.example.chang.e_ktm W/System.err:  at android.os.Handler.handleCallback(Handler.java:815) 
09-25 15:41:50.699 17259-17259/com.example.chang.e_ktm W/System.err:  at android.os.Handler.dispatchMessage(Handler.java:104) 
09-25 15:41:50.699 17259-17259/com.example.chang.e_ktm W/System.err:  at android.os.Looper.loop(Looper.java:210) 
09-25 15:41:50.699 17259-17259/com.example.chang.e_ktm W/System.err:  at android.app.ActivityThread.main(ActivityThread.java:5830) 
09-25 15:41:50.699 17259-17259/com.example.chang.e_ktm W/System.err:  at java.lang.reflect.Method.invoke(Native Method) 
09-25 15:41:50.699 17259-17259/com.example.chang.e_ktm W/System.err:  at java.lang.reflect.Method.invoke(Method.java:372) 
09-25 15:41:50.699 17259-17259/com.example.chang.e_ktm W/System.err:  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1113) 
09-25 15:41:50.699 17259-17259/com.example.chang.e_ktm W/System.err:  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:879) 

で誰かがこの問題について私を助けてくださいことはできますか? response.listener

POSTMAN結果

http://i.stack.imgur.com/4dBM6.png

+0

JSONレスポンスを添付して質問を更新できますか? – fluffyBatman

+0

@fluffyBatman JSONreponseが添付されているとはどういう意味ですか?どこで見つけることができますか? – loneranger

+0

'public void onResponse(String response)'の応答の値は何ですか? – fluffyBatman

答えて

0

あなたはphp apiからの適切な応答を取得されていませんで発生するような問題は思えます。だから、郵便配達員のようなREST clientを一度使ってapiにチェックしてください。

+0

その後、APIをチェックした後に何をするのですか? – loneranger

+0

@lonerangerは、あなたのapi – Nikhil

+0

からあなたに送っているjson応答をあなたに送ることができますか? – loneranger

0

「値<!DOCTYPE」は、JSONペイロードを受信して​​いないことを示しているようですが、HTML oneです。これは、問題がサーバー側に残り、echo json_encode($response);の前にクラッシュし、エラーページを生成する可能性が高いことを意味します(「500サーバーエラー」)。

確認するには、ブラウザからURLにアクセスして、同じペイロードを送信してみてください(GETを試してください)。

PHPスクリプトのデバッグを開始すると、いくつかのブレークポイントが内部に設定され、クライアント側から要求がトリガされます(IDEにPHPデバッグを設定していますか?)。

+0

私はあなたを得なかった...あなたはどういう意味ですか? – loneranger

+0

(申し訳ありませんが、MDは "値<!DOCTYPE"に私の<を食べます)。つまり、jsonのペイロードではなくHTMLページを受け取っている可能性があります。これは、PHPがエラーに達した場合に発生します。その場合、診断情報を含む「コード500エラーページ」が出力されます。人間によって読まれることを意図していましたが、それは確かにjsonパーサが期待していないものです。残りはこの仮説をチェックする方法に関する提案です。 –

関連する問題