我们正在尝试使用Android中的HttpPost将jsonarray发送到服务器

时间:2016-02-23 12:33:59

标签: android json http-post inputstream httpentity

我们正在尝试使用HttpPost进行jsonarray服务器。    在jsonarrray由带有婴儿车的jsonobjects组成。    但是在发送到服务器时我得到了null。 下面的代码:

class EventPosting extends AsyncTask<Void, Void, JSONArray> {


        @Override
        protected void onPreExecute() {
            super.onPreExecute();

            pDialog = new ProgressDialog(getActivity());
            pDialog.setMessage("Loading Data...");
            pDialog.setCancelable(true);
            pDialog.show();
        }

        @Override
        protected JSONArray doInBackground(Void... params) {



            //return postJsonObject(URLs.Search.URL, makingJson());

            return postJsonObject("http://192.168.3.245:1985/MyService.svc/postevents", makingJson());//local
            // return postJsonObject("http://192.168.3.223:1985/MyService.svc/SearchData", makingJson());//local

        }

        @Override
        protected void onPostExecute(JSONArray result) {
            super.onPostExecute(result);

            if (result!=null) {
                pDialog.dismiss();
                Log.d("Dgetta: ", "" + result);
                // Toast.makeText(getActivity(), "Successfully post json object", Toast.LENGTH_LONG).show();

                // Toast.makeText(getActivity(),"Data Retrieved Successfully",Toast.LENGTH_LONG).show();
            }else {
                pDialog.dismiss();

            }
        }

    }

    public JSONObject makingJson() {

        jsonObj = new JSONObject();

        Log.d("Checking", "ch_name: " + p_title + ":" + p_description);
        try {
            jsonObj.put(URLs.PostEvents.param1, p_title);
            jsonObj.put(URLs.PostEvents.param2, p_description);
            jsonObj.put(URLs.PostEvents.param3, p_title + "_" + event_Datetime);//Img1Name
            jsonObj.put(URLs.PostEvents.param4, p_title + "_" + event_Datetime);//Img2Name
            jsonObj.put(URLs.PostEvents.param5, p_title + "_" + event_Datetime);//Img3Name
            jsonObj.put(URLs.PostEvents.param6, bitmap_string1);//Img1Path
            jsonObj.put(URLs.PostEvents.param7, "TestImg2");//Img2Path*//*
            jsonObj.put(URLs.PostEvents.param8, "TestImg2");//Img3Path
            jsonObj.put(URLs.PostEvents.param9, "TestClubID");//ClubId
            jsonObj.put(URLs.PostEvents.param10, "TestPostID");//PostedBY

        } catch (JSONException e) {
            e.printStackTrace();
        }
        Log.d("JSonOBJ",""+jsonObj);
        return jsonObj;


    }


    public JSONArray postJsonObject(String url, JSONObject loginJobj){
        Log.d("NewJson",""+loginJobj);

        try {
            // 1. create HttpClient
            HttpClient httpclient = new DefaultHttpClient();

            // 2. make POST request to the given URL

            //http://localhost:9000/api/products/GetAllProducts
            HttpPost httpPost = new HttpPost(url);

            System.out.println(url);
            String jsonStr = "";

            // 4. convert JSONObject to JSON to String

            jsonStr = loginJobj.toString();

            System.out.println(jsonStr);
            // 5. set json to StringEntity
            StringEntity se = new StringEntity(loginJobj.toString());

            // 6. set httpPost Entity
            httpPost.setEntity(se);

            // 7. Set some headers to inform server about the type of the content
            httpPost.setHeader("Accept", "application/json");
            httpPost.setHeader("Content-type", "application/json");

            // 8. Execute POST request to the given URL
            HttpResponse httpResponse = httpclient.execute(httpPost);

            // 9. receive response as inputStream
            inputStreamjj = httpResponse.getEntity().getContent();

            // 10. convert inputstream to string
            if(inputStreamjj != null){
                resultStr = convertInputStreamToString(inputStreamjj);

                json = new JSONArray(resultStr);
            }
            else{
                resultStr = "Did not work!";
            }

        } catch (Exception e) {
            Log.d("inputStreamjj", e.getLocalizedMessage());
        }

        Log.d("Result", resultStr);
//        try {
//
//
//        } catch (JSONException e) {
//            e.printStackTrace();
//        }
        // 11. return result

        return json;
    }

    private String convertInputStreamToString(InputStream inputStream) throws IOException{
        BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(inputStream));
        String line = "";
        String result = "";
        while((line = bufferedReader.readLine()) != null)
            result += line;

        Log.d("New Data: ",":" +result);
        inputStream.close();

        return result;
    }

在输入流中显示null Plz指导我们。感谢@!

0 个答案:

没有答案