Android KSOAP2:获取web服务响应的http状态代码

Android KSOAP2:获取web服务响应的http状态代码,android,ksoap,Android,Ksoap,我需要从ksoap响应中获取http状态代码,以指定诸如403 unauthorized之类的异常(我使用客户端证书进行身份验证-当证书无效时)。 我试图在ResponseProperties中找到http状态(我认为应该是这样),但我没有 代码: 谢谢。游戏进行得很晚,现在使用SOAP的人不多了 URL myurl = new URL(url); URLConnection connection = myurl.openConnection(); connection.

我需要从ksoap响应中获取http状态代码,以指定诸如403 unauthorized之类的异常(我使用客户端证书进行身份验证-当证书无效时)。 我试图在ResponseProperties中找到http状态(我认为应该是这样),但我没有

代码:


谢谢。

游戏进行得很晚,现在使用SOAP的人不多了

    URL myurl = new URL(url);
    URLConnection connection = myurl.openConnection();
    connection.setConnectTimeout(20 * 1000);
    HttpURLConnection httpConnection = (HttpURLConnection) connection;
    int responseCode = -1;

    if (responseCode == HttpURLConnection.HTTP_OK)
    {
        httpConnection.disconnect();
        SoapObject request = new SoapObject(namespace, methodName);
        //...
    }
    else if(...)
    {
        //...
    }
捕获org.ksoap2.transport.HttpResponseException而不是Exception时,可以获得HTTP响应代码

} catch (HttpResponseException httpException) {
    int statusCode = httpException.getStatusCode();
    List responseHeaders = httpException.getResponseHeaders();
} catch (Exception e) {
    e.printStackTrace();
}
响应头是头属性对象,例如

0 = {HeaderProperty@4668} 
 key = null
 value = "HTTP/1.1 404 Not Found"
1 = {HeaderProperty@4669} 
 key = "Content-Length"
 value = "0"

谢谢breceivemail,但我使用的是KSOAP2,无法直接访问HttpURLConnection。用一个示例代码更新了问题。啊哈…在调用一些SOAP代码之前,您可以将其作为预检查。谢谢,我试过了,很有帮助。当我没有发送客户端证书时,我得到了正确的403响应。然而,当我的证书不在服务器配置中时,我不会得到401个未经授权的证书,但会抛出IOException“Received authentication challenge is null”。这很清楚,但401将是精确的。所以选择它作为答案,如果它是有用的。必须说我不同意这个答案。对我来说,执行2次网络调用而不是1次,解析IOException听起来有点过火。在这个答案中获取http状态代码的代码在哪里?
0 = {HeaderProperty@4668} 
 key = null
 value = "HTTP/1.1 404 Not Found"
1 = {HeaderProperty@4669} 
 key = "Content-Length"
 value = "0"