1

この問題に本当に問題があります。以下のコードは、POST 値 (ユーザー名、パスワード) をサーバーに送信することを想定しており、サーバーは GET および POST の var_dump で応答する必要があります。

PHP コード:

var_dump($_POST);
var_dump($_GET);

アンドロイドコード:

InputStream is = null;

//http post
try{
        HttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url + "?test=test");
        httpPost.setHeader("Content-Type", "application/json");
        httpPost.setHeader("Accept", "application/json");

        // place them in an array list
        ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
        nameValuePairs.add(new BasicNameValuePair("username", "1123"));
        nameValuePairs.add(new BasicNameValuePair("password", "123123"));

        // add array list to http post
        httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        HttpResponse response = httpClient.execute(httpPost);
        HttpEntity entity = response.getEntity();
        is = entity.getContent();

        Log.i("Network", "POST URL: " + url);
        Log.i("Network", "POST ARGS: " + jsonObj.toString());

    } catch(Exception e){

        Log.e("Network", "POST Error in http connection " + e.toString());

    }

しかし、私が得るのは次のとおりです。

array(0) {
}
array(1) {
   ["test"]=> string(4) "test"
}

curl でサーバーをテストしました: curl -F 'username=test' http://xx.xx.xx.xx/test.php そして、正しい結果が得られます:

array(1) {
   ["username"]=> string(9) "test"
}
array(0) {
}

Androidの投稿で何が間違っているのですか?

4

1 に答える 1

1

Content-Typeヘッダーを に設定しないでくださいapplication/json。ヘッダーを設定しないか、Content-Type手動で に設定することができますapplication/x-www-form-urlencoded

于 2013-05-17T08:06:45.953 に答える