问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

请问Android 发送大量的http请求怎么做最好呢?

发布网友 发布时间:2022-04-23 02:03

我来回答

3个回答

热心网友 时间:2022-04-25 19:36

你应该写清楚应用场景,懒得写代码,只写思路
分两种使用场景吧,第一种,就是无脑post,对服务器造成很大负担(如果这就是你的目的),那你只需要写个timer循环,每隔一秒或者几秒post服务端就行了
第二种,在get到结果后循环post,这个方式比较合理,不需要timer循环,对服务器负荷也小,需要一个hanlderMessage,在get到结果或异常后给hanlderMessage发送消息,handlerMessage再执行一次post即可

热心网友 时间:2022-04-25 20:54

String rs="";
try {
final String SERVER_URL = "http://127.0.0.1/service.asmx";
String nameSpace = "http://tempuri.org/";//命名空间
String methodName = "HelloWorld";//方法名
String soapAction = "http://tempuri.org/HelloWorld";//HelloWorld 命名空间/方法名
//创建SoapObject实例
SoapObject request = new SoapObject(nameSpace, methodName);
request.addProperty("name",gpp);
request.addProperty("jd",gpp2);
rs="到这里了";

//生成调用web service方法的soap请求消息
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true; //设置.net web service
envelope.setOutputSoapObject(request);//发送请求
rs="到这里了2";
HttpTransportSE androidHttpTransport = new HttpTransportSE(SERVER_URL);
rs="到这里了3";
androidHttpTransport.call(soapAction, envelope);
rs="到这里了4";
Object result = (Object) envelope.getResponse();
//textView.setText(e.getMessage());
return result.toString();
//textView.setText("7");
// new AlertDialog.Builder(this).setTitle("Hint").setMessage(result.toString()).setPositiveButton("OK", null).show();
}
catch (Exception e)
{
System.out.println(e.getMessage());
// textView.setText(e.getMessage());
// new AlertDialog.Builder(this).setTitle("Hint").setMessage(e.getMessage()).setPositiveButton("OK", null).show();
}
return rs;
}

@Override
protected void onProgressUpdate(Integer... progress) {
//这个函数在doInBackground调用publishProgress时触发,虽然调用时只有一个参数
//但是这里取到的是一个数组,所以要用progesss[0]来取值
//第n个参数就用progress[n]来取值
tv.setText(progress[0]+"%");
super.onProgressUpdate(progress);
}

@Override
protected void onPostExecute(String result) {
//doInBackground返回时触发,换句话说,就是doInBackground执行完后触发
//这里的result就是上面doInBackground执行后的返回值,所以这里是"执行完毕"
setTitle(result);
tv.setText(result);
super.onPostExecute(result);
}

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

热心网友 时间:2022-04-25 22:29

handler+Runnable 做定时任务
public class MainActivity extends AppCompatActivity {
private static boolean flag = true;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

setTimer();
}

private void setTimer(){
mHandler.postDelayed(runnable, 1000);
}

private Handler mHandler = new Handler();

Runnable runnable = new Runnable() {
@Override
public void run() {
//在这里执行定时需要的操作

if (flag) {
mHandler.postDelayed(this, 1000);
}
}
};

private void stopTimer(){
flag = false;
}}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 笔记本电脑如何调亮屏幕亮度 大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 给我个下载“终极三国”1~17集的地址!!3Q 电脑桌面上的图标变扁了 网页上的字体变了 怎么才能把微信信息字的颜色不一样呢? 电脑字体和图标变扁了,咋恢复? 电脑桌面图标和窗口变扁了怎么变回去 电脑分辨率怎么调图标都是扁的!怎么回事??? 电脑开机后桌面上的图标和字体都变扁了大了,为什么 android webview中的loadUrl方法是get请求还是post请求 电脑屏幕上的图标变扁怎样恢复 电脑图标变扁怎么办,调了好多次都没用 android中handler.post();和view.post();有经验的开发者受累解答下~~~ Android view.post(runnable)方法不理解,请帮助解释,谢谢! 电脑上所有字和图标都变扁变大了,要怎样恢复? 电脑的图标变扁了怎么办? 桌面图标和字体都太扁了怎么办? 电脑屏幕的图像变扁了怎么办呢? 英语分为哪几种字体?学生写那种? 英文斜体字母书写(A) 英文斜体字怎么打,最好给个输入法 英文 斜体词,快, 耳朵里面嗡嗡嗡是怎么回事? 电脑重装系统,可是桌面显得很扁了?怎么弄回去? 如何在电视,盒子上安装电视家软件 电视家怎么安装到电视? 电视家软件用U盘下载了安装在哪里?是插电视还是播放器啊?谢谢 excel函数公式大全的具体操作,例如按什么键然后按哪个工作表选哪些列,谢谢! 电视家怎么安装到电视机? 小龙虾的养殖技术 电视家怎么安装到电视机?方法介绍 如何设置Excel的函数公式? 天津大黄鱼一斤多少钱? 请问电视家软件怎么下载的 宁安市东京城镇海鲜黄花鱼多少钱一斤? 不用u盘怎么安装电视家? 黄花鱼一斤17块一两多少钱? 黄鱼多少钱一斤 网上卖那个有机黄花鱼三斤多重的得多钱一条啊? 小龙虾该如何养殖? 3到4两的一条黄花鱼九块九和多钱一斤? 海信电视怎样下载电视家