【问题标题】:Code 401 when issuing a POST request through Android通过 Android 发出 POST 请求时出现代码 401
【发布时间】:2017-09-02 12:35:49
【问题描述】:

当我使用 Postman 访问 URL 时,它可以正常工作,但通过 Android 我收到 401 错误:

04-07 03:53:26.920 850-1142/system_process I/ActivityManager: START u0 {cmp=vems.visioneering.com.vems/.utils.ProfileActivity} from uid 10061 on display 0
04-07 03:53:26.957 26244-26244/vems.visioneering.com.vems V/Action ID: http://192.168.16.2:8081/VEMS/rest/ajax/getProfileObj
04-07 03:53:26.962 26244-26273/vems.visioneering.com.vems W/DefaultRequestDirector: Authentication error: Unable to respond to any of these challenges: {}
04-07 03:53:26.962 26244-26273/vems.visioneering.com.vems V/httpResponse: org.apache.http.message.BasicHttpResponse@83d69b6
04-07 03:53:26.962 26244-26273/vems.visioneering.com.vems V/Status code: 401
04-07 03:53:26.963 26244-26244/vems.visioneering.com.vems D/AndroidRuntime: Shutting down VM

我的代码是:

try {
    DefaultHttpClient client = new DefaultHttpClient();
    client.getParams().setParameter(ClientPNames.ALLOW_CIRCULAR_REDIRECTS, true);
    HttpPost httpPost = new HttpPost(params[1]);
    httpPost.setHeader("Accept", "application/json");
    httpPost.setHeader("Content-type", "application/json");

    StringEntity entity = new StringEntity(params[0]);
    httpPost.setEntity(entity);

    HttpResponse httpResponse = client.execute(httpPost);
    Log.v("httpResponse ",httpResponse.toString());

    int statusCode = httpResponse.getStatusLine().getStatusCode();
    Log.v("Status code", String.valueOf(statusCode));
    if (statusCode == HttpURLConnection.HTTP_OK ||
        statusCode == HttpURLConnection.HTTP_CREATED) {

        HttpEntity httpEntity = httpResponse.getEntity();
        response=EntityUtils.toString(httpEntity);
        Log.v("RESPONSE SERVER COMM : ",response);
        return response;
    }
} catch (Exception e){
// ...
}

我该如何解决这个问题?

【问题讨论】:

  • 你查过401是什么意思吗?
  • 是的,我查了一下..它成功登录但没有点击这个 URL
  • 您能分享一下您在邮递员中使用的请求吗?您没有在代码中设置任何用户/凭据参数,并且由于您获得了 401,因此您可能错过了这一点。 (http.401 == 未经授权)

标签: android ajax rest http-post unauthorized


【解决方案1】:

用户会话管理还需要以下标头:

httpPost.setHeader("Your code", "Your code");

【讨论】:

    【解决方案2】:

    状态码 401 表示未经授权。应该有关系 一、证书 2.登录凭据 3.访问令牌

    【讨论】:

      猜你喜欢
      • 2018-08-03
      • 2021-05-19
      • 2019-02-22
      • 2013-02-01
      • 2021-06-07
      • 2021-07-30
      • 1970-01-01
      • 2018-04-25
      • 1970-01-01
      相关资源
      最近更新 更多