2016-05-13 8 views
2

こんにちは皆さん、これは以前に尋ねられた場合、私は過去3日間このソリューションを探しています。私はアンドロイドとPHPの新機能です。 私は "jsonArray"(以下に示す)を自分のPHPサーバーに送信して、phpで受信したjsonobject値を抽出する方法を知りたいと思います。 jsonarrayrequestとhashmapを試しましたが、送信できませんでした。助けてください。例えば代わり​​JsonArrayRequestのjsonobjectsをPHPサーバに送信する方法

String url="http://192.168.43.210/jjj.php"; 
JSONArray list; 
RequestQueue requestQueue; 
final JSONArray jsonArray=new JSONArray(); 

for (int i=0;i<valu;i++) 
{ 
JSONObject jsonObject=new JSONObject(); 
try { 
jsonObject.put("comptext",smslist.get(i).completeText); 
jsonObject.put("amount",smslist.get(i).amount); 
jsonObject.put("txntype",smslist.get(i).txnType); 
jsonObject.put("party",smslist.get(i).party); 
jsonObject.put("from",smslist.get(i).fromNo); 
jsonObject.put("datetime",smslist.get(i).dateTime); 
jsonArray.put(jsonObject); 

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


JsonArrayRequest jsonArrayRequest=new JsonArrayRequest(Request.Method.POST, url, new Response.Listener<JSONArray>() { 
       @Override 
       public void onResponse(JSONArray response) { 

        result.append("Successfully sent"); 
       } 
      }, new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 

       } 
      }){ 
       protected Map<JSONArray,JSONArray> getparams() throws AuthFailureError{ 
        Map<JSONArray,JSONArray> parameters = new HashMap<JSONArray, JSONArray>(); 
        parameters.put(list,jsonArray); 
        return parameters; 

       } 
      }; 
      requestQueue.add(jsonArrayRequest); 

     } 


    }); 
+0

私はそうする必要はありませんが、この拳時間がなかったとき、私は同じ問題を抱えていました私の答えを見ることを心配しなさい.enjoy – Manish

+0

私はjsonarrayの代わりに文字列要求を試みましたが、同じハッシュマップ、まだ動作していません... @ ManishKumar –

+0

あなたのPHPコードをチェックしてください... @ Sankalp – Manish

答えて

1

使用StringRequest:

private void register() { 

     if (!validate()) { 

      onRegistrationFailed("Registration Failed"); 
      return; 

     } 
     final String name = et_username.getText().toString(); 
     final String email = et_email.getText().toString(); 
     final String phone = et_phone.getText().toString(); 
     final String password = et_password.getText().toString(); 

     showDialog(); 

     StringRequest strRequest = new StringRequest(Request.Method.POST, Config.MAIN_URL + Config.REGISTER, 
       new Response.Listener<String>() { 
        @Override 
        public void onResponse(String response) { 
         Log.d(TAG, "Register Response: " + response.toString()); 
         hideDialog(); 
         try { 
          JSONObject jsonObject = new JSONObject(response); 

          int status = jsonObject.getInt("status"); 
          String msg = jsonObject.getString("message"); 

          if (status == SUCCESS) { 

           onRegistrationSuccess(name,email); 

          } else { 

           onRegistrationFailed(msg); 
          } 

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

       }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       Log.e(TAG, "Registration Error: " + error.getMessage()); 
       hideDialog(); 
       Toast.makeText(getApplicationContext(), 
         error.getMessage(), Toast.LENGTH_LONG).show(); 
      } 
     }) { 
      @Override 
      protected Map<String, String> getParams() { 
       // Posting params to register url 
       Map<String, String> params = new HashMap<String, String>(); 
       params.put(Config.KEY_USERNAME, name); 
       params.put(Config.KEY_EMAIL, email); 
       params.put(Config.KEY_PHONE, phone); 
       params.put(Config.KEY_PASSWORD, password); 
       return params; 
      } 

     }; 

     // Adding request to request queue 
     AppController.getInstance().addToRequestQueue(strRequest); 

    } 
+0

文字列reqeuestとjsonの違いは何ですか? – Moudiz

+0

申し訳ありませんが、私は間違っているが、最初に私は同じ問題 – Manish

+0

を持っていて、これを変更することによって、私はその問題を解決した – Manish

1

これは、ログインサンプルの作業のコードです。だからこれを試し、必要に応じて変更してください。

Login.java

package com.example.volleytest; 

import android.app.ProgressDialog; 
import android.content.DialogInterface; 
import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 
import android.os.Bundle; 
import android.support.v7.app.AlertDialog; 
import android.support.v7.app.AppCompatActivity; 

import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import com.android.volley.AuthFailureError; 
import com.android.volley.Request; 
import com.android.volley.RequestQueue; 
import com.android.volley.Response; 
import com.android.volley.VolleyError; 
import com.android.volley.toolbox.StringRequest; 
import com.android.volley.toolbox.Volley; 

import java.util.HashMap; 
import java.util.Map; 

import org.json.JSONException; 
import org.json.JSONObject; 

public class Login extends AppCompatActivity{ 

public static final String LOGIN_URL = "YOUR_URL"; 
             //"http://192.168.1.100/Login/admin.php"; 
ProgressDialog pDialog; 

public static final String KEY_USERNAME="username"; 
public static final String KEY_PASSWORD="password"; 

private EditText editTextUsername; 
private EditText editTextPassword; 
private Button buttonLogin; 

private String username; 
private String password; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.login); 

     editTextUsername = (EditText) findViewById(R.id.editTextUsername); 
     editTextPassword = (EditText) findViewById(R.id.editTextPassword); 

     buttonLogin = (Button) findViewById(R.id.buttonLogin); 

     buttonLogin.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 

       if(isNetworkAvailable()){ 
       userLogin(); 
       } 
       else 
       { 
        showMessageDialog("Error", "Check your Internet Connection..!"); 
       } 
      } 
     }); 
} 

private void userLogin() { 
    username = editTextUsername.getText().toString().trim(); 
    password = editTextPassword.getText().toString().trim(); 

    pDialog = new ProgressDialog(this); 
    pDialog.setMessage("Loading..."); 
    pDialog.show(); 

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

        try { 
         //JSONArray myJSON= new JSONArray(response); 

          JSONObject parentObject = new JSONObject(response); 
          JSONObject childObject = parentObject.getJSONObject("Tracking"); 

           String status = childObject.optString("status"); 
           String type = childObject.optString("type"); 

           //System.out.println("status : " + status); 
           //System.out.println("Type : " + type); 

           if(status.trim().equals("success")) 
           { 
            pDialog.hide(); 
            showMessageDialog("Login", type + " Login Successfully..!"); 
           } 
           else 
           { 
            pDialog.hide(); 
            showMessageDialog("Login", "No Users/Admin were Found..! "); 
           } 


        } catch (JSONException e) { 
         // TODO Auto-generated catch block 
         //e.printStackTrace(); 
         pDialog.hide(); 
         showMessageDialog("JSON Error", "Server Error..! Try after Some Time..!");//e.getMessage()); 
        } 

       } 
      }, 
      new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) 
       { 
        pDialog.hide(); 
        //showMessageDialog("Login", "Reponse => " + error.toString()); 
        showMessageDialog("Login", "Server Error..! Try after Some Time..!"); 
       } 
      }){ 
     @Override 
     protected Map<String, String> getParams() throws AuthFailureError { 
      Map<String,String> map = new HashMap<String,String>(); 
      map.put(KEY_USERNAME,username); 
      map.put(KEY_PASSWORD,password); 
      return map; 
     } 
    }; 

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

public void showMessageDialog(String title , String Message) 
{ 
    AlertDialog dialog = new AlertDialog.Builder(Login.this) 
    .setTitle(title) 
    .setMessage(Message) 
    .setPositiveButton("Ok", new DialogInterface.OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      // TODO Auto-generated method stub 
      dialog.dismiss(); 

     } 
    }) 

    .show(); 

    //TextView textView = (TextView) dialog.findViewById(android.R.id.message); 
    //textView.setTextSize(25); 

} 

    private boolean isNetworkAvailable() { 
     ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE); 
     NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo(); 
     return activeNetworkInfo != null && activeNetworkInfo.isConnected(); 
    } 

}

login.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
android:orientation="vertical" 
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:paddingBottom="@dimen/activity_vertical_margin" 
> 

<TextView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:textSize="20dp" 
    android:text="Login Using Volley Library" 
    /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="20dp" 
    android:text="Enter Username" 
    /> 

<EditText 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/editTextUsername" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Enter Password" 
    /> 

<EditText 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:inputType="textPassword" 
    android:id="@+id/editTextPassword" /> 

<Button 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="Login" 
    android:id="@+id/buttonLogin" /> 

</LinearLayout> 
関連する問題