我是Android开发的新手。
基本上我需要将我的Android应用程序的3个editTexts中的数据提交到网页并显示返回的响应。 该网页使用与jSessionId的会话。
我不知道如何通过将jSessionId附加到网址,将请求发布到网页,获取cookie,存储并使用它,同时发送上述数据。 我过去2天一直在搜索这个。但无法完成任何工作。不知道从哪里开始以及如何开始。
我正在寻找一个详细的答案,因为我也尝试过stackoverflow的答案。仍然没有运气
到目前为止,我设法找回了jsessionid。
public boolean send() {
String givenDob = dobET.getText().toString();
String givensurname = surnameEt.getText().toString();
String givenCaptcha = captchaET.getText().toString();
String url = "https://mysite/getinfo.html";
try {
URLConnection connection = new URL(url).openConnection();
InputStream response = connection.getInputStream();
List<String> cookies = connection.getHeaderFields().get("Set-Cookie");
Log.d("Link Response", String.valueOf(response));
Log.d("Cookie", String.valueOf(cookies));
String value = cookies.get(0);
if (value.contains("JSESSIONID")) {
int index = value.indexOf("JSESSIONID=");
int endIndex = value.indexOf(";", index);
String sessionID = value.substring(
index + "JSESSIONID=".length(), endIndex);
Log.d("id " ,sessionID);
}
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
现在我该如何使用此sessionid并发送edittext数据来检索信息?
答案 0 :(得分:0)
你必须以三种方式做事
1)首先将您的sessionId存储在服务器端的数据库(Backend)中,从Web站点(Web客户端)。 我不知道您使用什么环境的网站,但如果您知道,可以通过Ajax请求或其他方式来完成。
2)创建将从数据库访问该存储数据的Web服务。
3)最后,您将通过Android客户端获取和发布数据。 请参考以下代码:
var t = document.querySelector("meta[name='validation']").getAttribute('content');
$.ajax({
url:'yoururl',
data: yourData + '&token=' + t,
type: 'get',
success: function(response){
// do whatever
},
error: function(e){
console.log(e);
}
});
此方法将从服务器返回字符串响应。 您可以解析回复并在您的应用中使用。
答案 1 :(得分:0)
使用Cookimanager
为整个连接设置默认Cookie。我的问题解决了。只需使用URI.builder()
URL strUrl = new URL("https://myurl.com/services/getinfo.html?dateOfBirth="
+ params[0] +
"&surName=" + params[1] +
"&firstName&middleName" +
"&captchaCode=" + params[2]);