身份验证在Put方法android中无效

时间:2014-12-09 09:56:39

标签: android

如何在使用四个Headers的身份验证的put方法中获得响应。在ios中它可以正常工作但在Android中不行。

验证码是从数据HMAC-SHA256生成的,验证后提供的密钥为密钥

    HttpPut put = new HttpPut(xAuthurl);//url
    Log.v("put", "" + put);

    try {
        put.setEntity(new StringEntity(data, "UTF-8"));
    } catch (UnsupportedEncodingException e1) {
        Log.e(TAG, "UnsupportedEncoding: ", e1);
    }

    //Here are the four headers......
    put.addHeader("Content-type", "application/json");
    put.addHeader("x-Auth-user", Validation.id);//id of the profile
    put.addHeader("X-Auth-Hash", hexBytes);// Hexadecimal value
    put.addHeader("X-Auth-Time", sdf.format(datetime));//date format in utc
    HttpResponse response = null;
    try {
        response = http.execute(put);
        Log.v("response", "" + response.getAllHeaders());

    } catch (ClientProtocolException e1) { // TODO Auto-generated catch
                                            // block
        e1.printStackTrace();
    } catch (IOException e1) { // TODO
        // Auto-generated catch block
        e1.printStackTrace();
    }
    Log.d(TAG, "This is what we get back:"
            + response.getStatusLine().toString() + ", "
            + response.getEntity().toString());
    try {
        inputStream = response.getEntity().getContent();
    } catch (IllegalStateException e1) { // TODO Auto-generated catch
                                            // block
        e1.printStackTrace();
    } catch (IOException e1) { // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    if (inputStream != null) {
        try {
            result = convertInputStreamToString(inputStream);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        Log.v("result", "" + result);
    } else {
        result = "Did not work!";
    }

    return 1;

}

private String convertInputStreamToString(InputStream inputStream)
        throws IOException {
    BufferedReader bufferedReader = new BufferedReader(
            new InputStreamReader(inputStream));
    String line = "";
    String result = "";
    while ((line = bufferedReader.readLine()) != null)
        result += line;

    inputStream.close();
    return result;

}

我得到的结果是{"消息":"发生了错误。"}

0 个答案:

没有答案