0

ここの指示に従って Fiddler でトラフィックを表示できるように、エミュレーターに新しいアクセス ポイントをセットアップしました: http://aurir.wordpress.com/2010/03/22/tutorial-getting-android-emulator- working-with-fiddler-http-proxy-tool/

これは、エミュレーターからのブラウザー リクエストに対しては機能しますが、アプリケーションの HttpPost リクエストが Fiddler に表示されるようになりました。

私が使用しているコードは次のとおりです。

private InputStream post(String url, Hashtable<String, String> postvariables) {

    DefaultHttpClient httpClient = new DefaultHttpClient();
    URI uri;
    InputStream data = null;

    try {
        uri = new URI(url);
        HttpPost method = new HttpPost(uri);
        method.setHeader("Content-Type","application/json");

        String param = new String();
        Enumeration<String> e = postvariables.keys();
        while(e.hasMoreElements())
        {
            String key = e.nextElement();
            param = param + key + "=" + postvariables.get(key); 
            if(e.hasMoreElements()) {
                param = param + "&";
            }
        }

        Log.i("RestClient",url + param);

        HttpEntity entity = new StringEntity(param);
        method.setEntity(entity);

        HttpResponse response = httpClient.execute(method);
        data = response.getEntity().getContent();

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

    return data;
}

私が間違っていることは何か分かりますか?

4

1 に答える 1

1

私はこれを明示的に試したことはありませんが、APN を変更してエミュレーターのトラフィックをリダイレクトすると、ブラウザーにのみ影響するという多くの報告を見てきました。オプションを指定してエミュレータ インスタンスを実行すると、うまくいく可能性があります-http-proxy <proxy>。詳細については、エミュレータの起動オプション (ネットワーク) の下を参照してください。

http://developer.android.com/guide/developing/tools/emulator.html

$0.02: Charlesを使用して Web サービスをデバッグし、この方法でエミュレーターを起動すると、すべてのトラフィックに対して機能します。

それが役立つことを願っています!

于 2011-02-20T14:57:45.233 に答える