2

まず、ステータス コード 200 を受け取りました。PHP スクリプトでは、サーバーに送信された内容をコードからメールで受け取るだけです (試してデバッグしている間)。var_dump $_POST または $_REQUEST を使用すると、空のメールが届きます。$_SERVER で foreach を実行すると、 HTTP_USER_AGENT のようなデータが返されます: Apache-HttpClient/UNAVAILABLE (java 1.4) および CONTENT_LENGTH : 9

投稿データがない理由がわかりません。私はアンドロイドが初めてで、文字通り勉強しながら学んでいます。

HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost(dest_url);
    //httppost.setHeader("Accept", "application/json");
    //httppost.setHeader("Content-type", "application/json");

//JSONObject json = new JSONObject();

        // Add your data
        //json.put("action", "login");
        //json.put("username", "kermit");
        //json.put("password", "123456");

    ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    //nameValuePairs.add(new BasicNameValuePair("myjson", json.toString()));
    nameValuePairs.add(new BasicNameValuePair("plswork", "hi"));
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, HTTP.UTF_8));

    //StringEntity str_json = new StringEntity(json.toString());

    //httppost.setEntity(str_json);
    HttpResponse response;

    response = httpclient.execute(httppost);

私のmanifestxmlには次の行があります。

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

これらは私の輸入品です。

import java.io.IOException;
import java.util.ArrayList;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.json.JSONObject;

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
4

1 に答える 1

3

おそらくそれはあなたと関係があります

httppost.setHeader("Content-type", "application/json");

application/jsonHTTPPOSTフォーム送信の通常のコンテンツタイプではありません。実際にjsonを送信しているのではなく、標準のPOSTエンティティ(nameString = valueString)を送信していることを考慮して、これを次のように変更してみてください

httppost.setHeader("Content-Type", "application/x-www-form-urlencoded")

これで問題が解決するかどうかを確認してください。または、さらに良いことに、それをすべて削除します。

私は自分のアプリでこのコードを使用しています-そしてそれは完全にうまく機能します:

HttpPost httppost = new HttpPost(SERVER_URL);
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("REQUEST", req));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8"));
HttpResponse response = httpclient.execute(httppost);

この場合の応答はtext/xml-ですが、これは問題ではありません。

于 2012-04-20T14:55:24.797 に答える