現在、サーバー側スクリプトの$_POST配列内のいくつかの変数にアクセスするのに問題があります。
コンテキスト:PHPを使用してAndroidデバイスからmySQLサーバーにいくつかの値を送信しています。「新しいルートを作成」すると、phpとjavaは正常に機能します。次に例を示します。
投稿する変数のリストを作成する:
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("name", name));
params.add(new BasicNameValuePair("startLat", startLat));
params.add(new BasicNameValuePair("startLong", startLong));
params.add(new BasicNameValuePair("endLat", endLat));
params.add(new BasicNameValuePair("endLong", endLong));
params.add(new BasicNameValuePair("waypoints", waypoints.toString()));
params.add(new BasicNameValuePair("rating", rating));
params.add(new BasicNameValuePair("difficulty", difficulty));
params.add(new BasicNameValuePair("enjoyability", enjoyability));
params.add(new BasicNameValuePair("count", count));
params.add(new BasicNameValuePair("sum", sum));
params.add(new BasicNameValuePair("countDiff", countDiff));
params.add(new BasicNameValuePair("sumDiff", sumDiff));
params.add(new BasicNameValuePair("countEnjoy", countEnjoy));
params.add(new BasicNameValuePair("sumEnjoy", sumEnjoy));
次に、メソッドを呼び出して投稿します。
if(method == "POST"){
// request method is POST
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
//System.out.println(httpPost.getURI().toString());
//System.out.println(httpPost.getEntity().toString());
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
そして、これは正常に機能し、値は$_POST配列のPHPスクリプトで利用できます。私が抱えている問題は、以下を使用してまったく同じプロセスを実行する場合です(この場合、「ルートを更新している」ため、変数がいくつか少ないため、これは更新用のPHPスクリプトに反映されます。ルート。:
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("name", name));
params.add(new BasicNameValuePair("rating", Double.toString(currentRating)));
params.add(new BasicNameValuePair("difficulty", Double.toString(currentDiff)));
params.add(new BasicNameValuePair("enjoyability", Double.toString(currentEnjoy)));
params.add(new BasicNameValuePair("count", Double.toString(currentCount)));
params.add(new BasicNameValuePair("sum", Double.toString(currentSum)));
params.add(new BasicNameValuePair("countDiff", Double.toString(currentDiffCount)));
params.add(new BasicNameValuePair("sumDiff", Double.toString(currentDiffSum)));
params.add(new BasicNameValuePair("countEnjoy", Double.toString(currentEnjoyCount)));
params.add(new BasicNameValuePair("sumEnjoy", Double.toString(currentEnjoySum)));
JSONObject jsonEdit = jsonParser.makeHttpRequest(url_edit,
"POST" +
"", params);
$ _POST配列は、phpスクリプトサーバー側では空です。これは少し曖昧かもしれませんが、ご理解いただければ幸いです。私は両方の方法でデータを送信するまったく同じプロセスを実行していますが、後者は空です。