Передача кириллицы на сервер

202
09 мая 2017, 03:34

При передачи сообщения, содержащим кириллицу, сервер отображает:

[B@163fa4e.

Сообщение передаю в UTF-8. Но серверу не удается прочесть его корректно.

Как справится с этой проблемой?

Метод кодирования:

    try {
        SecretKeySpec signingKey = new       SecretKeySpec(KEY.getBytes(StandardCharsets.UTF_8), SHA_TYPE);
        Mac mac = Mac.getInstance(SHA_TYPE);
        mac.init(signingKey);
        byte[] rawHmac = mac.doFinal(VALUE.getBytes(StandardCharsets.UTF_8));
        byte[] hexArray = {
                (byte)'0', (byte)'1', (byte)'2', (byte)'3',
                (byte)'4', (byte)'5', (byte)'6', (byte)'7',
                (byte)'8', (byte)'9', (byte)'a', (byte)'b',
                (byte)'c', (byte)'d', (byte)'e', (byte)'f'
        };
        byte[] hexChars = new byte[rawHmac.length * 2];
        for ( int j = 0; j < rawHmac.length; j++ ) {
            int v = rawHmac[j] & 0xFF;
            hexChars[j * 2] = hexArray[v >>> 4];
            hexChars[j * 2 + 1] = hexArray[v & 0x0F];
        }
        return new String(hexChars);
    }
    catch (Exception ex) {
        throw new RuntimeException(ex);
    }

  protected Void doInBackground(Void... params) {
        // 1. create HttpClient
        HttpClient httpclient = new DefaultHttpClient();
        // 2. make POST request to the given URL
        HttpPost httpPost = new HttpPost (url);
        String json = "";
        // 3. build jsonObject
        String holder = CreateCard.fullName.getText ().toString();
        byte bytes[] = holder.getBytes(StandardCharsets.UTF_8);
        String s =  new String(bytes, StandardCharsets.UTF_8);
        JSONObject jsonObject = new JSONObject ();
        jsonObject.accumulate ("cardHolder", s);
        // json = mapper.writeValueAsString(person);
        // 5. set json to StringEntity
        StringEntity se = new StringEntity (json);
        // 6. set httpPost Entity
        httpPost.setEntity (se);
        // 7. Set some headers to inform server about the type of the content
        String hash;
        String key =  ModelAuth.salt + Autorization.smsCode;
        hash = hmacSha (key, json, "HmacSHA256");
        httpPost.setHeader ("Content-Type", "application/json");
        httpPost.setHeader ("language", "RU");
        httpPost.setHeader ("sessionId", ModelAuth.sessionId);
        httpPost.setHeader ("reqSign", hash);
        // 8. Execute POST request to the given URL
        HttpResponse httpResponse = httpclient.execute (httpPost);
        // 9. receive response as inputStream
        inputStream = httpResponse.getEntity ().getContent ();
        // 10. convert inputstream to string
        if (inputStream != null){
            result = convertInputStreamToString (inputStream);
        }
        else
            result = "Did not work!";
    } catch (Exception e) {
        Log.d ("InputStream", e.getLocalizedMessage ());
    }
    return null;
    }
READ ALSO
Перенос строки в .properties файле

Перенос строки в .properties файле

Вот у меня типичный формат properties файла: name=value а что если у меня value довольно длинное я хочу использовать перенос строки? Это возможно?

313
Как создать кастомный ListView

Как создать кастомный ListView

Необходим ListView, в котором при нажатии на него открывается модальное окно с выбором одного из элементов listview ,а после выбора его отметить

175