代码之家  ›  专栏  ›  技术社区  ›  Devyani Kotadiya

如何在Android中使用curl?

  •  3
  • Devyani Kotadiya  · 技术社区  · 9 年前

    我想使用带有登录验证的curl在switch-click-listener上发出命令。 喜欢 http://admin:1234@10.1.1.83/outlet?4=OFF

    switch4.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    getRequest();
    
                }
            });
    

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

    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();
       }
    
    1 回复  |  直到 9 年前
        1
  •  2
  •   Jay Katira    9 年前

    您可以使用 httpget

    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();
    }
    

    在脚本中使用此代码,它会工作的。