在看了网络上很多视频关于android通过HTTP POST或者GET方式访问网页并获取数据的方法。
自己也copy了一份来测试,并通过C#.NET搭建了一个简单的后台,但发现传参时,按照网上的方式来做无法得到相应的结果。
以下是我的求贴
http://bbs.csdn.net/topics/390814679
发了好久都没有人关于答复这个问题,估计大家都不是使用ASP.NET来做后台。
经过了反复的测试手机端代码,发现其实ASP.NET做的后台,其实能够直接解析URL中带参数,不需要通过网上介绍的方法实现
以下是截取测试代码的主要部分:
按钮触发:
<span style="white-space:pre"> </span>final Button btn2 = (Button) findViewById(R.id.button2); btn2.setOnClickListener(new OnClickListener() { public void onClick(View v) { progressDialog = ProgressDialog.show(MainActivity.this, "加载中...", "请等待...", true, false); // 新建线程 new Thread() { @Override public void run() { // 需要花时间计算的方法 try { String str = posturl("http://aspspider.info/lanjackg2003/Default.aspx?name=lan120576664&psw=456"); textViewhttpRes.setText(str.toString()); } catch (Exception e) { // TODO: handle exception } // 向handler发消息 handler.sendEmptyMessage(0); } }.start(); } });
获取网页数据的代码:
public String posturl(String url){ InputStream is = null; String result = ""; try{ HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(url); HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); is = entity.getContent(); }catch(Exception e){ return "Fail to establish http connection!"+e.toString(); } try{ BufferedReader reader = new BufferedReader(new InputStreamReader(is,"utf-8")); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } is.close(); result=sb.toString(); Log.v(LOG_TAG,result.toString()); }catch(Exception e){ return "Fail to convert net stream!"; } return result; }
手机显示
PC端显示显示:
PC与手机显示的结果是一致的!
Android通过HTTP POST带参访问asp.net网页
时间: 2024-11-11 10:29:37