Android 2.3.4上的授权标头收到400个错误请求

Android 2.3.4上的授权标头收到400个错误请求,android,android-2.3-gingerbread,retrofit,Android,Android 2.3 Gingerbread,Retrofit,我正在尝试让我的简单应用程序在安卓2.3.4-姜饼上运行。我向服务器发出的第一个请求是身份验证。为了提出请求,我正在使用改装 然而,当我试图从一部有姜饼的手机上发出请求时,我发现了下面的错误 05-09 16:21:44.724 4706-4734/com.myapp.mobile D/Retrofit﹕ <--- HTTP 400 https://myserver.com/myservice/user/signin (2318ms) 05-09 16:21:44.740 47

我正在尝试让我的简单应用程序在安卓2.3.4-姜饼上运行。我向服务器发出的第一个请求是身份验证。为了提出请求,我正在使用改装

然而,当我试图从一部有姜饼的手机上发出请求时,我发现了下面的错误

05-09 16:21:44.724    4706-4734/com.myapp.mobile D/Retrofit﹕ <--- HTTP 400 https://myserver.com/myservice/user/signin (2318ms)
05-09 16:21:44.740    4706-4734/com.myapp.mobile D/Retrofit﹕ <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html><head>
    <title>400 Bad Request</title>
    </head><body>
    <h1>Bad Request</h1>
    <p>Your browser sent a request that this server could not understand.<br />
    </p>
    <hr>
    <address>Apache/2.2.15 (CentOS) Server at localhost Port 443</address>
    </body></html>
我正在构建适配器,如下所示:

private final RestAdapter REST_ADAPTER = new RestAdapter.Builder()
        .setServer(API_URL)
        .setLogLevel(RestAdapter.LogLevel.FULL)
        .build();

private final MyTaskService MY_SERVICE = REST_ADAPTER.create(MyTaskService.class);
同样的代码库在较新的API(我已经尝试过API 15+)上运行得非常好


姜饼上的
授权
请求失败有什么原因吗

我知道,老线程,但我遇到了同样的问题,在这里没有找到解决方案。所以我调查了一下,发现了我的问题所在。不过我们用截击

实际问题是在使用以下代码时:

    String auth = "Basic " + Base64.encodeToString(creds.getBytes(), Base64.DEFAULT);
    headers.put("Authorization", auth);
当我们只是做

    headers.put("Authorization", "Basic asd123ASD123asd");
它起作用了

为什么?

当然,我不知道为什么安卓2.3的行为与较新的安卓不同,但是
Base64.encodeToString()
引入了一个新的行字符。我想这是我们用的。这一新行将HTTP头一分为二,因此您从服务器获得两个响应,后一个响应是400错误请求,显示在Logcat中


如果有人对我是如何发现这一点感兴趣,别急着问!但是,由于这个问题引用了很久,而且没有回答,我想没有太多的兴趣,我节省了解释HTTP和截图的时间。

Ha,以前也遇到过这个问题。另一种解决方案是使用Base64.NO\u WRAP。至少上次解决了我的问题;)
    headers.put("Authorization", "Basic asd123ASD123asd");