首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Android中使用curl?

如何在Android中使用curl?
EN

Stack Overflow用户
提问于 2017-08-24 08:51:41
回答 1查看 4.8K关注 0票数 3

我想在开关上发出命令,点击监听器使用curl和登录身份验证。就像http://admin:1234@10.1.1.83/outlet?4=OFF

我设置了像这样的开关上的单击监听器,并在单击监听器时调用了一个curl方法

代码语言:javascript
复制
switch4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                getRequest();

            }
        });

现在,像这样的getRequest()方法。

代码语言:javascript
复制
public static String getRequest() {
       StringBuffer stringBuffer = new StringBuffer("");
       BufferedReader bufferedReader = null;
       try {
           HttpClient httpClient = new DefaultHttpClient();
           HttpPost httpPost = new HttpPost();

           URI uri = new URI("http://10.1.1.83/outlet?4=OFF");
           httpPost.setURI(uri);
           httpPost.addHeader(BasicScheme.authenticate(
                   new UsernamePasswordCredentials("admin", "1234"),
                   HTTP.UTF_8, false));

           HttpResponse httpResponse = httpClient.execute(httpPost);
           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();
   }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-28 11:08:09

您可以使用带有用户名、密码凭据的httpget方法。这里我给你演示一下这个方法。

代码语言:javascript
复制
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://10.1.1.83/outlet?2=OFF");
        httpGet.setURI(uri);
        httpGet.addHeader(BasicScheme.authenticate(
new UsernamePasswordCredentials("admin", "1234"),
                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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45857099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档