1

いくつかのデータを返すためのいくつかの php スクリプトを持つ Web サーバーにポスト リクエストを作成しています。

実際の電話でコードを実行すると、コードはうまく機能します。エミュレーターでテストすると、機能しません。「NULL POINTER EXCEPTION」をスローします。exception.getMessage() は NULL を伝えます

また、ブラウザー アプリケーションからエミュレーターで直接 URL を要求して、このサーバーにアクセスしようとしましたが、うまくいきました。確かに、投稿パラメーターを送信していないため、投稿データが送信されていないというエラーが発生しましたが、到達可能でした。最初に証明書エラーが発生しましたが、[OK] をクリックすると機能しました。

開発マシンでローカル サーバー (10.0.2.2) に接続しようとすると、同じ問題が発生しました。問題は構成にあると思ったので、Webサーバーにアップロードしましたが、それでも同じ問題が発生します:

public String postData(ArrayList<String> params) {

    String responseText=null;

    // Create a new HttpClient and Post Header
    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost(SERVERURL);
    Log.i(TAG, "Posting HttpPost .. . ");
    //goes well till this line

    try {
    // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);

        nameValuePairs.add(new BasicNameValuePair("long", params.get(0)));
        nameValuePairs.add(new BasicNameValuePair("lat", params.get(1)));


        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        HttpResponse response = httpclient.execute(httppost);

        Log.i(TAG, "Posting  httpclient.execute .. . ");

        responseText = convertStreamToString(response.getEntity().getContent());
        //responseText = EntityUtils.toString(response.getEntity());
        if (responseText !=null) {

            Log.i(TAG,"PRESPONSE TEXT:"+ responseText);
        }                       
        else
            Log.i(TAG," Entity RESPONSE is NULL");

    } catch (ClientProtocolException e) {

        Log.i(TAG, " POST ClientProtocolException " +e.getMessage());
    } catch (IOException e) {
        Log.i(TAG, " POST IOException " +e.getMessage());
    } catch (Exception el) {
        Log.i(TAG, " POST Exception " +el.getMessage());
    }

    return responseText;
} 
4

1 に答える 1

2

この問題は、別のプラットフォームバージョンをターゲットとする別のエミュレーターを作成することで解決されました。私はGoogleAPIを使用してAndroid4で作業していました。GoogleAPIを使用して別のエミュレータ2.3API10を作成しました。

別のエミュレーターを試したり、再起動したりするための提案をここに寄せてくれてありがとう。

于 2012-09-25T08:59:03.530 に答える