2 power1 power2 Power1_Power2 于 2015.07.17 15:27 提问

安卓请求jsp返回的数据怎么解析

图片说明
如图,安卓运行截图,如何获得有用数据yes

7个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.07.17 15:37
已采纳
 很多种方式呀,简单的就是字符串截取处理,
 public static void main(String[] args){
        String html = "<html><body>yes</body></html>";
        int s = html.indexOf("<body>");
        int e = html.indexOf("</body>");
        String str = html.substring(s+"<body>".length(), e);
        System.out.println(str);
    }
Power1_Power2
Power1_Power2 好的!
2 年多之前 回复
danielinbiti
danielinbiti 回复Power1_Power2: 有时间记得采纳一下
2 年多之前 回复
Power1_Power2
Power1_Power2 非常感谢您的回答,对我今天的帮助太大了。祝您生活愉快。好人一生平安。希望以后还能继续的到您的帮助。
2 年多之前 回复
danielinbiti
danielinbiti 回复Power1_Power2: 去掉除了<% %>以外的所有内容,只要<% %>内容,比如<!DOCTYPE html ,body等都不要。最后加一句<%=index%>就只获取index内容了
2 年多之前 回复
Power1_Power2
Power1_Power2 安卓关键源码已经贴上去了,我没用servlet类,都是jsp,但有判断的方法类。
2 年多之前 回复
danielinbiti
danielinbiti 回复Power1_Power2: 不知道你什么方式去交互的,一般接口不和页面交互,直接和服务交互
2 年多之前 回复
Power1_Power2
Power1_Power2 你好,我的服务器源码已经贴在下边了,您帮我看一下,能不能优化一下,我只想返回index的值!或者json格式的数据,感谢。
2 年多之前 回复
danielinbiti
danielinbiti 回复Power1_Power2: 如果不是json串,就是字符串,那就直接解析.String str2 = "price:200,name:liu"; String arr1[] = str2.split(","); for(int i=0;i<arr1.length;i++){ String arr2[] = arr1[i].split(":"); for(int j=0;j<arr2.length;j++){ System.out.println(arr2[j]); } }
2 年多之前 回复
Power1_Power2
Power1_Power2 比如,price:200,name:liu;
2 年多之前 回复
danielinbiti
danielinbiti 回复Power1_Power2: 键值?
2 年多之前 回复
Power1_Power2
Power1_Power2 可是简单的能这样做,复杂的诸如键值对,怎么办?
2 年多之前 回复
guwei4037
guwei4037   Ds   Rxr 2015.07.17 15:34

更好的做法是通过调用web接口,获得数据。如果一定这么做,可以通过正则表达式或者html解析器进行解析获得数据。

http://my.oschina.net/sjr/blog/126725

guwei4037
guwei4037 简单的很,比如你用servlet直接刷出xml或json或纯文本都可以,根据你的需要。
2 年多之前 回复
Power1_Power2
Power1_Power2 web接口是怎么一回事?就我的这个,能不能在服务端优化一下,让它直接传过来yes或是xml或json?谢谢!
2 年多之前 回复
bdmh
bdmh   Ds   Rxr 2015.07.17 15:41

你应该返回json数据,而不是html页面数据,解析json就方便多了

Power1_Power2
Power1_Power2 不好意思,按键失误!
2 年多之前 回复
Power1_Power2
Power1_Power2 我的本意是想直接返回有效值yes,代码如下:
2 年多之前 回复
Power1_Power2
Power1_Power2 我的本意是想直接返回有效值yes,代码如下:
2 年多之前 回复
Power1_Power2
Power1_Power2 我的本意是想直接返回有效值yes,代码如下:
2 年多之前 回复
Power1_Power2
Power1_Power2 我的本意是想直接返回有效值yes,代码如下:
2 年多之前 回复
Power1_Power2
Power1_Power2   2015.07.17 15:44

<%@page import="java.io.PrintWriter"%>
<%@page import="java.io.OutputStream"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="com.test1.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">



数据请求


<%
String name=request.getParameter("username");
String pass=request.getParameter("password");
String index=new Login().login(name, pass);
out.println(index);
System.out.println(index);
%>

Power1_Power2
Power1_Power2   2015.07.17 15:46

这是我服务端的代码返回源码!我其实只想让他返回index代表的yes

Power1_Power2
Power1_Power2   2015.07.17 16:01

安卓关键源码:
username = name.getText().toString();
password = pass.getText().toString();
// HttpPost连接对象
try {
HttpPost httpRequest = new HttpPost(URL);
// 使用NameValuePair来保存要传递的Post参数
List params = new ArrayList();
// 添加要传递的参数
params.add(new BasicNameValuePair("username", username));
params.add(new BasicNameValuePair("password", password));
Log.v("debug", params.toString());
// 设置字符集
HttpEntity httpentity;
httpentity = new UrlEncodedFormEntity(params, "UTF-8");

                // 请求httpRequest
                httpRequest.setEntity(httpentity);

                // 取得默认的HttpClient
                HttpClient httpclient = new DefaultHttpClient();
                // 取得HttpResponse
                HttpResponse httpResponse = httpclient.execute(httpRequest);
                // HttpStatus.SC_OK表示连接成功
                if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                    // 取得返回的字符串
                    String strResult1 = EntityUtils.toString(
                            httpResponse.getEntity(), "UTF-8");
                    Toast.makeText(MainActivity.this, strResult1, 2).show();
                    Log.v("debug", strResult1);
                }

            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
yuke198907
yuke198907   2015.07.17 16:43

一般都是通过webservice传递数据,类型一般都是json啦

Power1_Power2
Power1_Power2 我用webservice和servlet都实现了,但还想用jsp实现一下!谢谢!
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片