在Android中使用CURL的Restful api

时间:2015-10-01 03:53:45

标签: android curl

我正在创建一个需要登录身份验证的应用。我有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();
}

我怎样才能做到这一点?

先谢谢。

2 个答案:

答案 0 :(得分:1)

您在主线程上调用网络操作。这种情况崩溃了。使用volley库或在AsyncTask或线程中使用您的代码。记得在主线程中更新你的ui。

答案 1 :(得分:0)

考虑使用Android Asynchronous Http Client。这将简化你的生活。