如何在android中存储HTTP url的响应
我正在构建一个android应用程序,用户在其中输入姓名、电子邮件ID,然后解析为URL,所有用户数据都存储在那里 现在,当用户发送此信息时,服务器上会生成一个ID,并将该唯一ID作为URL响应重新发送给我 如何获取此响应并将其存储。所以我可以用它作为我未来的用途 下面是我将此值解析为该URL的代码-如何在android中存储HTTP url的响应,android,html-parsing,httpresponse,Android,Html Parsing,Httpresponse,我正在构建一个android应用程序,用户在其中输入姓名、电子邮件ID,然后解析为URL,所有用户数据都存储在那里 现在,当用户发送此信息时,服务器上会生成一个ID,并将该唯一ID作为URL响应重新发送给我 如何获取此响应并将其存储。所以我可以用它作为我未来的用途 下面是我将此值解析为该URL的代码- private class DownloadJSON extends AsyncTask<String, String, String> { @Override pr
private class DownloadJSON extends AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// Create a progressdialog
}
@Override
protected String doInBackground(String... params) {
// Create an array
//public String postData() {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://URL/api/user");
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>2);
nameValuePairs.add(new BasicNameValuePair("name", name));
nameValuePairs.add(new BasicNameValuePair("email", email));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
InputStream parse = entity.getContent();
return getStringFromInputStream(parse);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
return "No Result !";
}
//convert InputStream to String
private String getStringFromInputStream(InputStream is) {
BufferedReader br = null;
StringBuilder sb = new StringBuilder();
String line;
try {
br = new BufferedReader(new InputStreamReader(is));
while ((line = br.readLine()) != null) {
sb.append(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return sb.toString();
}
@Override
protected void onPostExecute(String args) {
}
}
私有类下载JSON扩展异步任务{
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
//创建一个progressdialog
}
@凌驾
受保护的字符串doInBackground(字符串…参数){
//创建一个数组
//公共字符串postData(){
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(“http://URL/api/user");
试一试{
//添加您的数据
List nameValuePairs=new ArrayList2);
添加(新的BasicNameValuePair(“name”,name));
添加(新的BasicNameValuePair(“email”,email));
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
//执行HTTP Post请求
HttpResponse response=httpclient.execute(httppost);
HttpEntity=response.getEntity();
InputStream parse=entity.getContent();
返回getStringFromInputStream(解析);
}捕获(客户端协议例外e){
//TODO自动生成的捕捉块
}捕获(IOE异常){
//TODO自动生成的捕捉块
}
返回“无结果!”;
}
//将InputStream转换为字符串
私有字符串getStringFromInputStream(InputStream为){
BufferedReader br=null;
StringBuilder sb=新的StringBuilder();
弦线;
试一试{
br=新的BufferedReader(新的InputStreamReader(is));
而((line=br.readLine())!=null){
某人附加(行);
}
}捕获(IOE异常){
e、 printStackTrace();
}最后{
如果(br!=null){
试一试{
br.close();
}捕获(IOE异常){
e、 printStackTrace();
}
}
}
使某人返回字符串();
}
@凌驾
受保护的void onPostExecute(字符串参数){
}
}
我是android新手,请帮帮我!!最好用一个众所周知的密钥保存所有内容
首先在SharedReferences中保存您的用户名和EmailId,类似
//Intialize it first
SharedPreferences sharedpreferences = getSharedPreferences("SOME_KEY", Context.MODE_PRIVATE);
//Use the Editor to put value inside this
Editor editor = sharedpreferences.edit();
//save both the name and email first
editor.putString("NAME", name);
editor.putString("EMAILID", email);
//finally commit it
editor.commit();
现在做你的服务器部分
@Override
protected String doInBackground(String... params) {
// Create an array
//public String postData() {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://URL/api/user");
try {
// Add your data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>2);
nameValuePairs.add(new BasicNameValuePair("name", name));
nameValuePairs.add(new BasicNameValuePair("email", email));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
// Execute HTTP Post Request
HttpResponse response = httpclient.execute(httppost);
String responseId = response.getEntity().getContent();
//Just save your ID in the same sharedPreferences in UI Thread
runOnUiThread(new Runnable(){
public void run() {
Editor editor = sharedpreferences.edit();
//save your ID now
editor.putString("ID", responseId );
editor.commit();
}
});
..............................
..............................
您能帮我解决这个问题吗?-String responseId=response.getEntity().getContent();@qwertymaster行中的“类型不匹配:无法从InputStream转换为字符串”;@qwertymaster您可以使用这些解决方案中的任何选项..检查一次
String id = sharedpreferences.getStringExtra("ID", "Some default value");