android - HTTP 使用基本身份验证获取 Android

标签 android basic-authentication

我是 REST 服务的新手,我正在网上找几个小时......

我有一个 REST 服务 url,可以返回 JSON 数据。 登录名(用户名和密码)是基本身份验证。 我正在寻找一个简单的库/代码 fragment ,它可以让我插入 uri、用户名和密码并返回 JSON 字符串。

如有任何帮助,我们将不胜感激!

最佳答案

也许你可以尝试这样的事情:

StringBuilder builder = new StringBuilder();
HttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet("YOUR WEBSITE HERE");

// Add authorization header
httpGet.addHeader(BasicScheme.authenticate( new UsernamePasswordCredentials("user", "password"), "UTF-8", false));

// Set up the header types needed to properly transfer JSON
httpGet.setHeader("Content-Type", "application/json");
try {
      HttpResponse response = client.execute(httpGet);
      StatusLine statusLine = response.getStatusLine();
      int statusCode = statusLine.getStatusCode();
      if (statusCode == 200) {
        HttpEntity entity = response.getEntity();
        InputStream content = entity.getContent();
        BufferedReader reader = new BufferedReader(new InputStreamReader(content));
        String line;
        while ((line = reader.readLine()) != null) {
          builder.append(line);
        }
      } else {
        Log.e(ParseJSON.class.toString(), "Failed to download file");
      }
} catch (ClientProtocolException e) {
  e.printStackTrace();
} catch (IOException e) {
  e.printStackTrace();
}

关于编写 JSONObject,请查看以下代码 fragment :

public void writeJSON() {
  JSONObject object = new JSONObject();
  try {
    object.put("name", "Jack Hack");
    object.put("score", new Integer(200));
    object.put("current", new Double(152.32));
    object.put("nickname", "Hacker");
  } catch (JSONException e) {
    e.printStackTrace();
  }
  System.out.println(object);
} 

关于android - HTTP 使用基本身份验证获取 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26176591/

相关文章:

Android AsyncTask 内存泄漏

android - 用于 Gradle 构建的 dexOptions 中的 jumboMode 的目的是什么?

asp.net-mvc - 如何使用授权属性进行 ASP.NET Web API 集成测试

c# - 如何在我的 asp net core 3.1 Controller 中的特定操作上设置基本身份验证?

android - 什么是 readStream() 方法?我只是在任何地方都找不到它,

java - 删除 View 列表中的特定 View

android - 从 Activity 中设置线程类中的文本

jquery - 使用 Cordova jquery ajax 调用未获得 401 授权,Upto Phonegap 1.4 工作正常

node.js - 如何使用 koa 在 Node.js 中使用基本身份验证处理多个静态凭据

java - Spring Security 身份验证被忽略