2017-04-17 12 views
1

AnyBody、私の問題を解決してください。私は自分のコードに問題ボレーのstringRequestからJSON POST値を取得しない

ここでは私のAndroidのコード

 StringRequest stringRequest = new StringRequest(Request.Method.POST,URL, 
      new Response.Listener<String>() 
      { 
       @Override 
       public void onResponse(String response) 
       { 
        Log.d("response",response); 
       } 
      }, 
      new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) 
       { 
        Toast.makeText(PostRequestTest.this, error.toString(), Toast.LENGTH_LONG).show(); 
       } 
      }) 
    { 
     //getaParams function is used to send the values to the server 
     @Override 
     protected Map<String, String> getParams() 
     { 
      Map<String, String> params = new HashMap<>(); 
      params.put("user_name","uname"); 
      Log.d("parameters09876", params.toString()); 
      JSONObject jsonObject = new JSONObject(params); 
      Log.d("jsonRequest",jsonObject.toString()); 
      return params; 
     } 
    }; 
    stringRequest.setRetryPolicy(new DefaultRetryPolicy(
      Config.MY_SOCKET_TIMEOUT_MS, 
      DefaultRetryPolicy.DEFAULT_MAX_RETRIES, 
      DefaultRetryPolicy.DEFAULT_BACKOFF_MULT)); 

    CustomVolleyRequest.getInstance(this).addToRequestQueue(stringRequest); 
} 

そして、私のPHPコードであるさボレーStringRequest.Whatから任意のPOST値を取得することができません、私は単純にPOST値

を印刷しますここで

<?php echo $_POST['user_name']; ?> 
は私CustomVolleyRequestある

public class CustomVolleyRequest { 
private static CustomVolleyRequest customVolleyRequest; 
private static Context context; 
private RequestQueue requestQueue; 
private ImageLoader imageLoader; 
private CustomVolleyRequest(Context context) { 
    this.context = context ; 
    this.requestQueue = getRequestQueue(); 
    imageLoader = new ImageLoader(requestQueue, 
      new ImageLoader.ImageCache() { 
       private final LruCache<String, Bitmap> 
         cache = new LruCache<String, Bitmap>(20); 
       @Override 
       public Bitmap getBitmap(String url) { 
        return cache.get(url); 
       } 
       @Override 
       public void putBitmap(String url, Bitmap bitmap) { 
        cache.put(url, bitmap); 
       } 
      }); 
} 
public static synchronized CustomVolleyRequest getInstance(Context context) { 
    if (customVolleyRequest == null) { 
     customVolleyRequest = new CustomVolleyRequest(context); 
    } 
    return customVolleyRequest; 
} 
public RequestQueue getRequestQueue() { 
    if (requestQueue == null) { 
     Cache cache = new DiskBasedCache(context.getCacheDir(), 10 * 1024 * 1024); 
     Network network = new BasicNetwork(new HurlStack()); 
     requestQueue = new RequestQueue(cache, network); 
     requestQueue.start(); 
    } 
    return requestQueue; 
} 
public <T> void addToRequestQueue(Request<T> req) 
{ 
    getRequestQueue().add(req); 
} 
public ImageLoader getImageLoader() 
{ 
    return imageLoader; 
} 

}

+0

'Log.d( "レスポンス"、応答);'ログは何ですか?あなたはjsonを送受信していません –

+0

アンドロイド側からあなたのコードがうまく見えますか?あなたは私にPHPコードを表示することができます – adam

+0

あなたは応答を得ていますか?それを含めてください –

答えて

1

私はあなたに1つの提案をします。 StringRequestの代わりにJsonObjectRequestを使用してください。

StringRequest:URLを指定し、生の文字列を受信します。

JsonObjectRequestおよびJsonArrayRequest(どちらもJsonRequestのサブクラス)。応答でURLを指定し、JSONオブジェクトまたは配列を取得します。

TextView mTxtDisplay; 
ImageView mImageView; 
mTxtDisplay = (TextView) findViewById(R.id.txtDisplay); 
String url = "http://my-json-feed"; 

JsonObjectRequest jsObjRequest = new JsonObjectRequest 
    (Request.Method.GET, url, null, new Response.Listener<JSONObject>() { 

@Override 
public void onResponse(JSONObject response) { 
    mTxtDisplay.setText("Response: " + response.toString()); 
} 
}, new Response.ErrorListener() { 

@Override 
public void onErrorResponse(VolleyError error) { 
    // TODO Auto-generated method stub 

} 
}); 

// Access the RequestQueue through your singleton class. 
MySingleton.getInstance(this).addToRequestQueue(jsObjRequest); 

See this docs

+0

JsonObjectRequestと連携していません: –

+0

$ rawData = file_get_contents( "php:// input");サーバー側でこれをチェックしましたか? – Gopal

+0

- ) "" –

関連する問題