Androidからphpサービスへのパラメーターとしてjson配列オブジェクトを送信します私は多くの文字列データとjsonarrayデータを持つjsonオブジェクトを持っています
**ArrayList<NameValuePair> nameValuePair = new ArrayList<NameValuePair>();
HttpResponse httpResponse = null;
// Making HTTP request
try {
// defaultHttpClient
DefaultHttpClient httpClient = new DefaultHttpClient();
JSONArray product_array = null;
/*
* namevaluepair.add(new BasicNameValuePair("val1",val1));
* namevaluepair.add(new BasicNameValuePair("val2",val2));
*/
try {
nameValuePair = new ArrayList<NameValuePair>();
nameValuePair.add(new BasicNameValuePair("n", jsonParams
.getString("n")));
nameValuePair.add(new BasicNameValuePair("e", jsonParams
.getString("e")));
nameValuePair.add(new BasicNameValuePair("p", jsonParams
.getString("p")));
nameValuePair.add(new BasicNameValuePair("a", jsonParams
.getString("a")));
nameValuePair.add(new BasicNameValuePair("t", jsonParams
.getString("t")));
nameValuePair.add(new BasicNameValuePair("m", jsonParams
.getString("m")));
product_array = jsonParams.getJSONArray("pj");
Log.i(TAG + "PPPPJJJ", product_array.toString());
// nameValuePair.add(new BasicNameValuePair("pj", product_array
// .toString()));
} catch (Exception e) {
Log.e(TAG, "2:" + e.getMessage());
}
String enc_url = URLEncoder.encode(url);
HttpPost httpPost = new HttpPost(enc_url);
httpPost.addHeader("accept", "application/json");
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePair));
httpResponse = httpClient.execute(httpPost);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}**
しかし、json配列をサーバーに転送していません。サーバーのphpファイルはその配列データを受信していませんが、ブラウザで正常に動作しているため、問題は私のコードにあると思います。
以下のコードの実行中に発生するエラー。
07-08 23:37:56.504: W/System.err(3219): java.lang.IllegalStateException: Target host must not be null, or set in parameters.
07-08 23:37:56.514: W/System.err(3219): at org.apache.http.impl.client.DefaultRequestDirector.determineRoute(DefaultRequestDirector.java:572)
07-08 23:37:56.514: W/System.err(3219): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:292)
07-08 23:37:56.514: W/System.err(3219): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
07-08 23:37:56.525: W/System.err(3219): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
07-08 23:37:56.525: W/System.err(3219): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
07-08 23:37:56.525: W/System.err(3219): at com.nufame.nufamemotel.utils.ConnectToNetwork.posthttp(ConnectToNetwork.java:200)
07-08 23:37:56.525: W/System.err(3219): at com.nufame.nufamemotel.utils.ConnectToNetwork.getData(ConnectToNetwork.java:67)
07-08 23:37:56.534: W/System.err(3219): at com.nufame.nufamemotel.utils.QueryServer.doInBackground(QueryServer.java:20)
07-08 23:37:56.534: W/System.err(3219): at com.nufame.nufamemotel.utils.QueryServer.doInBackground(QueryServer.java:1)
07-08 23:37:56.534: W/System.err(3219): at android.os.AsyncTask$2.call(AsyncTask.java:185)
07-08 23:37:56.534: W/System.err(3219): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
07-08 23:37:56.544: W/System.err(3219): at java.util.concurrent.FutureTask.run(FutureTask.java:138)
07-08 23:37:56.544: W/System.err(3219): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
07-08 23:37:56.544: W/System.err(3219): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
07-08 23:37:56.544: W/System.err(3219): at java.lang.Thread.run(Thread.java:1019)
07-08 23:37:56.544: E/...Error occured ....response(3219): java.lang.IllegalStateException: Target host must not be null, or set in parameters.
07-08 23:37:56.544: I/OrderHandler(3219): exception
07-08 23:37:56.544: W/System.err(3219): org.json.JSONException: Value exception of type java.lang.String cannot be converted to JSONObject
07-08 23:37:56.564: W/System.err(3219): at org.json.JSON.typeMismatch(JSON.java:107)
07-08 23:37:56.564: W/System.err(3219): at org.json.JSONObject.<init>(JSONObject.java:158)
07-08 23:37:56.564: W/System.err(3219): at org.json.JSONObject.<init>(JSONObject.java:171)
07-08 23:37:56.564: W/System.err(3219): at com.nufame.nufamemotel.handler.OrderHandler$1.onPostExecute(OrderHandler.java:108)
07-08 23:37:56.564: W/System.err(3219): at com.nufame.nufamemotel.handler.OrderHandler$1.onPostExecute(OrderHandler.java:1)
07-08 23:37:56.564: W/System.err(3219): at android.os.AsyncTask.finish(AsyncTask.java:417)
07-08 23:37:56.564: W/System.err(3219): at android.os.AsyncTask.access$300(AsyncTask.java:127)
07-08 23:37:56.564: W/System.err(3219): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:429)
07-08 23:37:56.574: W/System.err(3219): at android.os.Handler.dispatchMessage(Handler.java:99)
07-08 23:37:56.574: W/System.err(3219): at android.os.Looper.loop(Looper.java:123)
07-08 23:37:56.574: W/System.err(3219): at android.app.ActivityThread.main(ActivityThread.java:3683)
07-08 23:37:56.574: W/System.err(3219): at java.lang.reflect.Method.invokeNative(Native Method)
07-08 23:37:56.574: W/System.err(3219): at java.lang.reflect.Method.invoke(Method.java:507)
07-08 23:37:56.574: W/System.err(3219): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
07-08 23:37:56.584: W/System.err(3219): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
07-08 23:37:56.584: W/System.err(3219): at dalvik.system.NativeStart.main(Native Method)