Android apache http客户端NafHttpAuthStrategyDefault

Android apache http客户端NafHttpAuthStrategyDefault,android,apache-httpclient-4.x,Android,Apache Httpclient 4.x,当我在android上使用apache http客户端时,我在logcat中收到一条可疑消息 I/APACHE HTTP (thCr=2252) - NafHttpAuthStrategyDefault(9949): (thUse=2252) NafHttpAuthStrategyDefault() I/APACHE HTTP (thCr=2252) - NafHttpAuthStrategyDefault(9949): (thUse=2252) cached value : gbaSup

当我在android上使用apache http客户端时,我在logcat中收到一条可疑消息

I/APACHE HTTP (thCr=2252) - NafHttpAuthStrategyDefault(9949): (thUse=2252) NafHttpAuthStrategyDefault()
I/APACHE HTTP (thCr=2252) - NafHttpAuthStrategyDefault(9949): (thUse=2252)    cached value : gbaSupportIsPossible=null
I/APACHE HTTP (thCr=2252) - NafHttpAuthStrategyDefault(9949): (thUse=2252)    The current context is NOT a context of GBA service.
I/APACHE HTTP (thCr=2252) - GbaSupportPermissionRequestCheckerImpl(9949): (thUse=2252) isCurrentProcessRequestedGba()#finished   result=false
I/APACHE HTTP (thCr=2252) - GbaSupportPermissionRequestCheckerImpl(9949): (thUse=2252) isCurrentProcessAllowedToUseGba()#started   result=false
I/APACHE HTTP (thCr=2252) - NafHttpAuthStrategyDefault(9949): (thUse=2252)    The GBA permission wasn't requested for this process.
I/APACHE HTTP (thCr=2252) - NafHttpAuthStrategyDefault(9949): (thUse=2252) It is impossible to support GBA now (many possible reasons: no Android Context, current client is GBA service, etc.), then it will be just usual HTTP.
I/APACHE HTTP (thCr=2252) - NafRequestExecutorWrapperRedirectionHandler(9949): (thUse=2252)    It isn't GBA flow, redirection responses are not handled.
我只是使用下面的方法:

HttpClient httpClient = new DefaultHttpClient();
HttpContext httpContext = new BasicHttpContext();

HttpPost postRequest = new HttpPost(url);
postRequest.addHeader("User-Agent", String.format("%s %s %s %s %s", Build.MANUFACTURER, Build.MODEL, Build.PRODUCT, Build.CPU_ABI, Config.appStr));

MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);

reqEntity.addPart("sessionId", new StringBody(sessionId));

ByteArrayBody bab = new ByteArrayBody(afp, "afp");
reqEntity.addPart("afp", bab);

if (pcm != null)
{
    ByteArrayBody bab2 = new ByteArrayBody(pcm, "pcm");
    reqEntity.addPart("pcm", bab2);
}

postRequest.setEntity(reqEntity);

HttpResponse response = httpClient.execute(postRequest, httpContext);
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
String sResponse;
StringBuilder s = new StringBuilder();
while ((sResponse = reader.readLine()) != null) {
    s = s.append(sResponse);
    System.out.println(sResponse);
}
GBA服务的含义是什么?我怎样才能得到GBA的许可? 收到消息后,发送此请求的线程看起来像收到异常并被停止。
我在Galaxy Notes上执行了代码。

我相信您所指的GBA服务如下所述:

我的日志中也出现了这条消息,但我的网络连接仍然成功完成


有一次我遇到了一个异常,那是当我试图从主线程建立网络连接时,我认为这是不允许的

我相信您所指的GBA服务如下所述:

我的日志中也出现了这条消息,但我的网络连接仍然成功完成


有一次我遇到了一个异常,那是当我试图从主线程建立网络连接时,我认为这是不允许的

GBA-通用引导架构(由3GPP标准定义的认证机制)。。。更多信息

关于Galaxy Note(我相信它是T-mobile版本),T-mobile修改了APACHE HTTP客户端,将GBA客户端包括在WiFi上进行身份验证,特别是在WiFi上进行彩信验证

问题是为什么要使用GBA?它通常用于使用ISIM密钥进行身份验证,运营商将其用于其服务


如果您的应用程序是常规应用程序,那么最好坚持使用默认的android HTTP客户端,而不要使用Apache HTTP客户端

GBA-通用引导架构(由3GPP标准定义的认证机制)。。。更多信息

关于Galaxy Note(我相信它是T-mobile版本),T-mobile修改了APACHE HTTP客户端,将GBA客户端包括在WiFi上进行身份验证,特别是在WiFi上进行彩信验证

问题是为什么要使用GBA?它通常用于使用ISIM密钥进行身份验证,运营商将其用于其服务


如果您的应用程序是常规应用程序,那么最好坚持使用默认的android HTTP客户端,而不要使用Apache HTTP客户端

您应该更改为HttpURLConnection,这是使用HTTP服务的首选方式。您可以在此处了解更多信息:


您应该更改为HttpURLConnection,这是使用HTTP服务的首选方式。您可以在此处了解更多信息:


短版本:忽略消息

支持WiFi呼叫和其他一些功能的T-Mobile设备使用称为GBA的GSM移动标准,通过T-Mobile验证其服务。有问题的消息是日志声明,说明您的应用程序未被识别为t-Mobile应用程序,因此GBA不会在请求头中被广告。如果您确实支持GBA,那么您将看到的唯一区别是在请求的用户代理头中包含“GBA”


如果您的客户端正在与之通信的服务器应用程序支持GBA,那么开发人员应该与T-Mobile建立关系,并可以告诉您如何在应用程序中启用GBA身份验证。

简短版本:忽略消息

支持WiFi呼叫和其他一些功能的T-Mobile设备使用称为GBA的GSM移动标准,通过T-Mobile验证其服务。有问题的消息是日志声明,说明您的应用程序未被识别为t-Mobile应用程序,因此GBA不会在请求头中被广告。如果您确实支持GBA,那么您将看到的唯一区别是在请求的用户代理头中包含“GBA”


如果您的客户端正在与之通信的服务器应用程序支持GBA,那么开发人员应该与T-Mobile建立关系,并可以告诉您如何在您的应用程序中启用GBA身份验证。

卸载应用程序并再次安装应用程序后,该问题已得到修复

卸载应用程序并再次安装后,它已修复

我有一个类似的问题…我有一个类似的问题。。。