0

モバイル Android アプリケーションからサーバー側アプリケーションに http POST リクエストを送信する必要があります。このリクエストには、本文に json メッセージといくつかのキーと値のパラメーターを含める必要があります。私はこのメソッドを書き込もうとしています:

 public static String makePostRequest(String url, String body,  BasicHttpParams params) throws ClientProtocolException, IOException {
        Logger.i(HttpClientAndroid.class, "Make post request");
        HttpPost httpPost = new HttpPost(url);
        StringEntity entity = new StringEntity(body);
        httpPost.setParams(params);
        httpPost.setEntity(entity);
        HttpResponse response = getHttpClient().execute(httpPost);
        return handleResponse(response);
    }

ここでは、メソッド setParams を介してパラメーターを設定し、setEntity を介して JSON 本体を設定します。しかし、それは仕事ではありません。誰でも私を助けることができますか?

4

1 に答える 1

1

これを行うには aNameValuePairを使用できます........

以下は、NameValuePair を使用して xml データを送信し、xml 応答を受信したプロジェクトのコードです。これにより、JSON で使用する方法についていくつかのアイデアが得られます。

public String postData(String url, String xmlQuery) {



    final String urlStr = url;
    final String xmlStr = xmlQuery;
    final StringBuilder sb  = new StringBuilder();


    Thread t1 = new Thread(new Runnable() {

        public void run() {

            HttpClient httpclient = new DefaultHttpClient();

            HttpPost httppost = new HttpPost(urlStr);


            try {

                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(
                        1);
                nameValuePairs.add(new BasicNameValuePair("xml", xmlStr));

                httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                HttpResponse response = httpclient.execute(httppost);

                Log.d("Vivek", response.toString());

                HttpEntity entity = response.getEntity();
                InputStream i = entity.getContent();

                Log.d("Vivek", i.toString());
                InputStreamReader isr = new InputStreamReader(i);

                BufferedReader br = new BufferedReader(isr);

                String s = null;


                while ((s = br.readLine()) != null) {

                    Log.d("YumZing", s);
                    sb.append(s);
                }


                Log.d("Check Now",sb+"");




            } catch (ClientProtocolException e) {

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

    });

    t1.start();
    try {
        t1.join();
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


    System.out.println("Getting from Post Data Method "+sb.toString());

    return sb.toString();
}
于 2012-10-12T17:59:42.870 に答える