我正在创建一个需要登录身份验证的应用。我有api:
curl --user username:password -X GET -http://sample.com
现在我想验证登录并获得响应。
我调查了this,但没有得到任何结果。
我做到了这一点。但是它一直在阻挡。
public static String getRequest() {
StringBuffer stringBuffer = new StringBuffer("");
BufferedReader bufferedReader = null;
try {
HttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet();
URI uri = new URI("http://sample.com");
httpGet.setURI(uri);
httpGet.addHeader(BasicScheme.authenticate(
new UsernamePasswordCredentials("username", "password"),
HTTP.UTF_8, false));
HttpResponse httpResponse = httpClient.execute(httpGet);
InputStream inputStream = httpResponse.getEntity().getContent();
bufferedReader = new BufferedReader(new InputStreamReader(
inputStream));
String readLine = bufferedReader.readLine();
while (readLine != null) {
stringBuffer.append(readLine);
stringBuffer.append("\n");
readLine = bufferedReader.readLine();
}
} catch (Exception e) {
// TODO: handle exception
} finally {
if (bufferedReader != null) {
try {
bufferedReader.close();
} catch (IOException e) {
// TODO: handle exception
}
}
}
return stringBuffer.toString();
}
我怎样才能做到这一点?
先谢谢。
答案 0 :(得分:1)
您在主线程上调用网络操作。这种情况崩溃了。使用volley库或在AsyncTask或线程中使用您的代码。记得在主线程中更新你的ui。
答案 1 :(得分:0)
考虑使用Android Asynchronous Http Client。这将简化你的生活。