编码问题Android / REST / JSON

时间:2016-04-13 09:58:11

标签: java json rest encoding

我正试图在我的应用程序中从简单的休息服务解决响应(json)的编码问题大约一天,没有更多的想法..

当我在restclient中打开响应时,得到正确的结果:

Status Code: 200 OK
Connection: Keep-Alive
Content-Encoding: gzip
Content-Length: 270
Content-Type: application/json; charset=utf-8
Date: Wed, 13 Apr 2016 09:26:39 GMT
Keep-Alive: timeout=15, max=100
Server: Apache
Vary: Accept-Encoding

响应:

{"reqStatus": 1,
"articles": [
{
  "articleId": "1",
  "articleName": "Schüssel 18cm",
  "articlePrice": "34.50",
  "articleDate": "2016-03-15 17:34:00",
  "userZip": "76879",
  "userCity": "Ottersheim",
  "articleImages": [ ...

获取输入流:

{"reqStatus":1,"articles":[{"articleId":"1","articleName":"Sch\u00fcssel 18cm","articlePrice":"34.50","articleDate":"2016-03-15 17:34:00","userZip":"76879","userCity":"Ottersheim","articleImages":[ ...

请求代码:

        URL urlToRequest = new URL(serviceUrl);

        urlConnection = (HttpURLConnection) urlToRequest.openConnection();
        urlConnection.setConnectTimeout(10000);
        urlConnection.setReadTimeout(5000);
        urlConnection.setRequestMethod("POST");


        if (headers!=null&&headers.length>0){

            for (int i=0;i < headers.length;i++){

                urlConnection.setRequestProperty(headers[i][0].toString(), headers[i][1].toString());
            }
        }


        urlConnection.connect()


        int statusCode = urlConnection.getResponseCode();
        if (statusCode != HttpURLConnection.HTTP_OK) {

            BufferedReader streamReader = new BufferedReader(new InputStreamReader(urlConnection.getInputStream(), "UTF-8"));
            StringBuilder responseStrBuilder = new StringBuilder();

            String inputStr;
            while ((inputStr = streamReader.readLine()) != null)
                responseStrBuilder.append(inputStr);


            return new JSONObject(inputStr);
        }

任何想法?

0 个答案:

没有答案