Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android应用程序从第三方JSP获取数据&;Servlet_Android_Jsp_Servlets - Fatal编程技术网

Android应用程序从第三方JSP获取数据&;Servlet

Android应用程序从第三方JSP获取数据&;Servlet,android,jsp,servlets,Android,Jsp,Servlets,我正在编写一个Android应用程序,它应该可以从某个web应用程序获取数据。那个web应用程序是基于servlet和JSP的,它不是我的;这是公共图书馆的服务。获取这些数据最优雅的方式是什么 我试着编写自己的Servlet来处理请求和响应,但我无法让它工作。由于不同的上下文,Servlet转发无法完成,重定向也不起作用,因为它是一种POST方法。。。我的意思是,当然,我可以编写自己的表单来访问库的servlet,但结果是一个jsp页面。。我能把那一页变成一个字符串或什么的吗?不知何故,我认为我

我正在编写一个Android应用程序,它应该可以从某个web应用程序获取数据。那个web应用程序是基于servlet和JSP的,它不是我的;这是公共图书馆的服务。获取这些数据最优雅的方式是什么

我试着编写自己的Servlet来处理请求和响应,但我无法让它工作。由于不同的上下文,Servlet转发无法完成,重定向也不起作用,因为它是一种POST方法。。。我的意思是,当然,我可以编写自己的表单来访问库的servlet,但结果是一个jsp页面。。我能把那一页变成一个字符串或什么的吗?不知何故,我认为我做不到。。我卡住了


我可以用其他的方法吗?用php还是别的什么?或者在我的web服务器上获取jsp页面,然后以某种方式从中提取数据(可能使用jQuery?)并将其发送到Android?我真的不想在浏览器中向我的用户显示jsp页面,我想获取该数据并用它创建我自己的对象。

只需以编程方式发送HTTP请求。你可以使用Android的内置程序来实现这一点。或者,稍微低一点,Java的(另请参见)。两者都能够发送GET/POST请求,并将响应作为
输入流
字节[]或
字符串
检索回来

最简单的情况是,您可以按如下方式执行GET:

InputStream responseBody = new URL("http://example.com").openStream();
// ...
使用HttpClient更容易执行POST:

List<NameValuePair> params = new ArrayList<NameValuePair>(2);
params.add(new BasicNameValuePair("name1", "value1"));
params.add(new BasicNameValuePair("name2", "value2"));

HttpPost post = new HttpPost("http://example.com");
post.setEntity(new UrlEncodedFormEntity(params));

HttpClient client = new DefaultHttpClient();
HttpResponse response = client.execute(post);
InputStream responseBody = response.getEntity().getContent();
// ...
List params=newarraylist(2);
参数添加(新的BasicNameValuePair(“名称1”、“值1”);
参数添加(新的BasicNameValuePair(“名称2”、“值2”);
HttpPost=新的HttpPost(“http://example.com");
post.setEntity(新的UrlEncodedFormEntity(params));
HttpClient=new DefaultHttpClient();
HttpResponse response=client.execute(post);
InputStream ResponseBy=response.getEntity().getContent();
// ...

如果您需要将响应解析为HTML(但是我想知道“公共库服务”(它真的是公共的吗?)是否真的不提供XML或JSON服务,而这些服务更易于解析),那么使用jQuery方式遍历和操作HTML可能是一个救命稻草。它还支持顺便发送POST请求,只是不像HttpClient那样细粒度。

非常感谢!!我要试试看!Jsoup听起来像是我真正需要的东西。IIRC,我试过HtppClient,不管我怎么试都没用,但那是很久以前的事了,我会在找到足够的时间后再试一次。哦,基本上我应该从以下位置获取数据:bisis.bgb.rs/index.jsp?locale=en正如你所见,它基本上是这个库的搜索引擎,不,它不提供XML或JSON,就我所知。。它看起来就像一个普通的servlet应用程序,没有任何新奇和“现代”的东西,比如为其他应用程序提供数据:)