Restful Android中的后身份验证和获取请求
我在URL中有这个RestFull 返回 真的 如何在android的get方法中验证和获取Json记录 谢谢Restful Android中的后身份验证和获取请求,android,Android,我在URL中有这个RestFull 返回 真的 如何在android的get方法中验证和获取Json记录 谢谢HttpParams httpParameters=new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParameters,this.CONNECT\u超时); HttpConnectionParams.setSoTimeout(httpParameters,this.CONNECT\u超时); De
HttpParams httpParameters=new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters,this.CONNECT\u超时);
HttpConnectionParams.setSoTimeout(httpParameters,this.CONNECT\u超时);
DefaultHttpClient客户端=新的DefaultHttpClient(httpParameters);
//检索用户凭据。
SharedReferences设置=context.getSharedReferences(“登录”,0);
String loginNameString=settings.getString(“登录名”,null);
String passwordString=settings.getString(“密码”,null);
UsernamePasswordCredentials凭据=
新用户名PasswordCredentials(loginNameString、passwordString);
AuthScope AuthScope=new AuthScope(AuthScope.ANY\u主机、AuthScope.ANY\u端口);
client.getCredentialsProvider().setCredentials(authScope,credentials);
HttpPut=新的HttpPut(上传URL);
尝试
{
put.setEntity(新StringEntity(responseJSONArray.toString()),
服务器(首选(编码));
addHeader(“内容类型”、“应用程序/json”);
put.addHeader(“接受”、“应用程序/json”);
HttpResponse response=client.execute(put);
//200型反应。
如果(response.getStatusLine().getStatusCode()>=HttpStatus.SC\u正常&&
response.getStatusLine().getStatusCode()
您必须从身份验证响应中捕获cookie(从今天起,唯一返回的cookie是apiCredentials
),并将其包含到您的下一个请求中
(它有一些超时,因此您需要在需要时通过再次验证来刷新它。)Restful服务器需要POST来验证POST/Login/Autenticar?token={token},并请求一个Json记录,如GET/bus/find?findthis={……}您的代码无法工作,因为我需要使用E Post令牌进行身份验证,并使用GET请求Json对象。
POST /Login/Autenticar?token={token}
GET /Linha/Buscar?termosBusca={termosBusca}
RETURN
[
{
"CodigoLinha": 1273,
"Circular": false,
"Letreiro": "8000",
"Sentido": 1,
"Tipo": 10,
"DenominacaoTPTS": "PCA.RAMOS DE AZEVEDO",
"DenominacaoTSTP": "TERMINAL LAPA",
"Informacoes": null
},
{
"CodigoLinha": 34041,
"Circular": false,
"Letreiro": "8000",
"Sentido": 2,
"Tipo": 10,
"DenominacaoTPTS": "PCA.RAMOS DE AZEVEDO",
"DenominacaoTSTP": "TERMINAL LAPA",
"Informacoes": null
}
]
HttpParams httpParameters = new BasicHttpParams();
HttpConnectionParams.setConnectionTimeout(httpParameters, this.CONNECT_TIMEOUT);
HttpConnectionParams.setSoTimeout(httpParameters, this.CONNECT_TIMEOUT);
DefaultHttpClient client = new DefaultHttpClient(httpParameters);
// Retrieve user credentials.
SharedPreferences settings = context.getSharedPreferences("LOGIN", 0);
String loginNameString = settings.getString("login_name", null);
String passwordString = settings.getString("password", null);
UsernamePasswordCredentials credentials =
new UsernamePasswordCredentials(loginNameString, passwordString);
AuthScope authScope = new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT);
client.getCredentialsProvider().setCredentials(authScope, credentials);
HttpPut put = new HttpPut(UPLOAD_URL);
try
{
put.setEntity(new StringEntity(responseJSONArray.toString(),
SERVER_PREFERRED_ENCODING));
put.addHeader("Content-Type", "application/json");
put.addHeader("Accept", "application/json");
HttpResponse response = client.execute(put);
// 200 type response.
if (response.getStatusLine().getStatusCode() >= HttpStatus.SC_OK &&
response.getStatusLine().getStatusCode() < HttpStatus.SC_MULTIPLE_CHOICES)
{
// Handle OK response etc........
}
}
catch (Exception e)
{
}