【问题标题】:Convert Curl command into Java/Android将 Curl 命令转换为 Java/Android
【发布时间】:2013-12-26 09:13:21
【问题描述】:

我正在开发两个应用程序 -

第一个是使用 Spring MVC 3 的 Web 应用程序

第二个是用于同一网络应用程序的 Android 应用程序。

在这两者中,我都在集成基本身份验证,以使用 API 对该站点上的用户进行身份验证。

在API教程中,给出了以下curl命令来验证用户-

$ curl -u username:password insert_Url_here -d '[xml body here]'

我不明白,如何在 Java 和 android 代码中转换此命令。

请指导我。我完全被困在这里了。

【问题讨论】:

    标签: java api curl basic-authentication apache-httpclient-4.x


    【解决方案1】:

    使用 HttpClient 4,您需要执行以下操作:

    • 创建客户端:

    CloseableHttpClient 客户端 = HttpClientBuilder.create().build();

    • 创建 POST 请求:

    最终的 HttpPost postRequest = new HttpPost(SAMPLE_URL);

    • 设置 POST 请求的正文:

    request.setEntity(new StringEntity("POST 正文"));

    • 配置身份验证(大概是Basic Auth):

    UsernamePasswordCredentials creds = new UsernamePasswordCredentials(username, password);

    postRequest.addHeader(new BasicScheme().authenticate(creds, request, null));

    就是这样 - 这基本上就是您的 curl 命令所做的。

    希望这会有所帮助。

    【讨论】:

    • 谢谢@Eugen。这对我来说很好。但是验证方法 (new BasicScheme().authenticate(creds, request, null)) 已被弃用。您也可以提供任何其他方法吗?
    • 您是否完全按照现在的方式复制了该行(包括最后一个空参数)?我使用的是最新的 httpclient 版本(4.3.1)并且它没有被弃用 - 很可能你没有包含最后一个参数。
    • 不用担心,很高兴我能帮上忙。
    猜你喜欢
    • 1970-01-01
    • 2021-10-08
    • 2016-08-04
    • 1970-01-01
    • 2019-06-04
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    相关资源
    最近更新 更多