我在模拟器上设置了一个新的接入点,以便按照此处的说明查看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;
}
知道我做错了吗?
答案 0 :(得分:1)
我从来没有明确地尝试过这个,但是已经看到许多报告通过更改APN重定向模拟器流量只会影响浏览器。使用选项-http-proxy <proxy>
运行模拟器实例可能会更好。在这里,在模拟器启动选项(网络)下查看更多:
http://developer.android.com/guide/developing/tools/emulator.html
$ 0.02:我们使用Charles来调试Web服务,并以这种方式启动模拟器以适应所有流量。
希望有所帮助!