0

次のコードを使用してサーバーにデータを投稿しようとしていますが、データは 1 つのフィールドに対してのみ投稿され、他のフィールドは null に投稿されます。私のコードの問題は何ですか。Android アプリで他に必要な変更はありますか?

public void postData(String name,String email,String mobile,String subject,String          message,String url)
{
    // Create a new HttpClient and Post Header

    Log.i("name",name);
    Log.i("email",email);
    Log.i("subject",subject);
    Log.i("mobile",mobile);
    Log.i("url",url);

    try {
        // Add your data
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(url);

        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(5);

        nameValuePairs.add(new BasicNameValuePair("name", subject));
        nameValuePairs.add(new BasicNameValuePair("email",subject));
        nameValuePairs.add(new BasicNameValuePair("mobile", subject));
        nameValuePairs.add(new BasicNameValuePair("subject", subject));
        nameValuePairs.add(new BasicNameValuePair("message", subject));

        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));


        HttpResponse response = httpclient.execute(httppost);
        HttpEntity entity=response.getEntity();

    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }

私のコードの問題は何ですか?

4

2 に答える 2

0

nameValuePairList を渡すのが絶対に間違っているとは言えませんが、httpPost.setEntity() に渡すオブジェクトは MultipartEntity です。

MultipartEntity reqEntity = new MultipartEntity();
reqEntity.addPart("KEY", new StringBody("some string"));
reqEntity.addPart("ANOTHER_KEY", new StringBody("another string"));
httpPost.setEntity(reqEntity)

MultipartEntity は Apache Http Components の一部です

http://hc.apache.org/downloads.cgi

http クライアントのダウンロードには、クラスを含む httpmime-4.xxjar があります。必要なのは httpmime jar だけで、残りは必要ありません。

于 2013-09-15T06:06:15.320 に答える
0
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(5);

    nameValuePairs.add(new BasicNameValuePair("name", subject));
    nameValuePairs.add(new BasicNameValuePair("email",subject));
    nameValuePairs.add(new BasicNameValuePair("mobile", subject));
    nameValuePairs.add(new BasicNameValuePair("subject", subject));
    nameValuePairs.add(new BasicNameValuePair("message", subject));

    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

あなたのコードは私にはうまく見えます。subjectが null でないかどうかを確認します。
それらをすべてsubject!で設定したからです。

于 2013-09-15T07:03:45.803 に答える