곰곰히생각해곰
173
2019-06-26 14:34:08
24
831

Post 응답 본문 짤리는 현상 질문입니다!


제목과 마찬가지로 POST 요청하고 성공한다음 post 본문에 json 데이터를 받아오는데 대략 4000 바이트의 문자열만 날라오고 나머지 부분은 짤리는 현상입니다..

포스트 맨이나 다른 테스트로 테스트를 해봤을땐 json 데이터가 정상적으로 잘 넘어오는데요.

현재 진행 환경은 안드로이드에서 진행중입니다. 안드로이드에서HttpURLConnection으로 요청까지는 잘되는데.. 왜 데이터가 다 안넘어 올까요..? 응답 메시지에 들어있는 Post 본문 데이터의 길이는 몇만바이트 단위긴한데.. 너무 길어서 넘어오지 않는걸까요?

어느 부분에서 해결해야하는지 조언을 부탁드립니다!!

0
0
  • 답변 24

  • 협군
    5k
    2019-06-26 14:43:07

    post 로 넘기는 것 맞나요?

    4000자라니 쿼리스트링으로 넘기는 것이 아닌지 의심스럽네요.

    0
  • tou
    357
    2019-06-26 14:51:14

    POST요청이어도 서버에서 긴파라미터를 받지않게끔 되어있는경우도 있습니다.

    0
  • 곰곰히생각해곰
    173
    2019-06-26 14:53:02

    협군 네 post로 넘겨 받고 있습니당.. post 응답 메시지의 body에 json데이터가 넘겨져오는데 이 부분이 짤리는 문제가 ...

    0
  • 곰곰히생각해곰
    173
    2019-06-26 14:54:52

    tou 서버측으로 post요청과 본문 다 잘넘어가는데 서버측에서 클라이언트로 전달해주는 응답 메시지 부분이 짤리는 문제입니다 ㅠㅠ 클라이언트 쪽에서도 받지않을수 있나요..?

    0
  • 곰곰히생각해곰
    173
    2019-06-26 14:56:38

    +추가 포스트맨 테스트화면

    0
  • tou
    357
    2019-06-26 15:16:49
    받고 넘겨서 처리로직좀 소스볼수있을까요?
    0
  • 곰곰히생각해곰
    173
    2019-06-26 15:23:41 작성 2019-06-26 15:25:36 수정됨

    tou 안드로이드 쪽에서 처리하는 부분 말씀이신거죠? 이렇게 받았습니다..

    Log.i(TAG, "[" + url.toString() + "]" + "responseCode : " + responseCode);
    if (responseCode == HttpURLConnection.HTTP_OK) {
    InputStream is = request.getInputStream();

    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    byte[] byteBuffer = new byte[65524];
    byte[] byteData = null;
    int nLength = 0;
    while ((nLength = is.read(byteBuffer)) != -1) {
    baos.write(byteBuffer, 0, nLength);
    }


    byteData = baos.toByteArray();
    response = new String(byteData);

    request.disconnect();
    }
    int responseCode = request.getResponseCode();
    Log.i(TAG, "[" + url.toString() + "]" + " responseCode : " + responseCode);
    if (responseCode == HttpURLConnection.HTTP_OK) {

    BufferedReader bi2 = new BufferedReader( new InputStreamReader( request.getInputStream(),"utf-8" ) );


    String s = "";
    StringBuilder xml = new StringBuilder();
    while ( ( s = bi2.readLine() ) !=null) {
    xml.append(s);
    }
    response = xml.toString();

    bi2.close();

    request.disconnect();
    }
    0
  • 곰곰히생각해곰
    173
    2019-06-26 15:26:24

    tou 위에 두개 처리 값이 동일한지는 잘모르겠는데 둘다 끊기는 건 똑같았습니다!

    0
  • tou
    357
    2019-06-26 15:29:37

    Log.i에서도 값이 끊겨서 찍히는거죠?

    0
  • 곰곰히생각해곰
    173
    2019-06-26 15:37:04

    tou 아뇨 log.i 값은 단순히 url 보려고 한거라서 끊겨서 찍히거나 그런건 없구. response 라는 문자열 부분을 리턴해서 사용하게되는데 그부분을 출력해보면 json 데이터가 중간에 끊겨있어요.

    0
  • tou
    357
    2019-06-26 15:39:42

    아뇨아뇨 저단에서 LOG.i 이용해서 json데이터 한번 출력해보셨는지 여쭤보는ㄱㅓ에용

    0
  • 곰곰히생각해곰
    173
    2019-06-26 15:45:00

    tou 아 네 출력해봤습니다. 똑같이 끊기더라구요

    0
  • tou
    357
    2019-06-26 16:24:54

    아고 소스흐름을 잘이해를 못하겠네요ㅠㅠ 서버쪽으로 json을 보내셨고 서버에서는 json값이 잘찍히고 그값을 리턴해줘서 클라이언트에서 가공을 해줘야하는데 클라이언트단에서는 받은 값이 짤려있다는 말씀이시죠?

    0
  • 곰곰히생각해곰
    173
    2019-06-26 16:27:51

    tou 네 말씀하신 그말이 맞습니다. 

    0
  • tou
    357
    2019-06-26 16:41:00

    서버쪽으로 json을 전송할때 json형식으로 보내시나요? 아니면 문자열로 변환해서 보내주시나요?

    한번 문자열로 변환해서 파라미터 넘겨보시겠어요?

    0
  • 곰곰히생각해곰
    173
    2019-06-27 09:05:21

    tou 서버쪽으로 넘길때 json 형식의 문자열로 넘깁니다. application/json 지금 이형식으로 넘기고있는데 이거말고 그냥 문자열로 변환하라는 말씀이신가요? text/이런식으로?

    0
  • tou
    357
    2019-06-27 09:46:15

    네네 문자열로 변환시켜서 파라미터 한번 넘겨보신다음에 짤리는지 한번 보시는것도 좋을것같습니다

    저도 이전에 json넘겨서 길이 이슈생겨서 문자열로 변환해서 보낸다음에 처리로직에서 다시 가공을 해줬던 기억이있습니ㅏㄷ.

    0
  • 곰곰히생각해곰
    173
    2019-06-27 09:52:38

    tou 바꿔서 테스트 해봤는데 똑같이 안드로이드 상에서 짤리네요.. 말씀해주신대로 api 테스트 툴에서도 해봣는데 툴에서는 잘되고요. 흠 타입문제가 아닌것같네요..ㅜㅜ

    위에 포스트맨 사진에서 보이듯이 서버쪽으로 넘기는 길이는 그렇게 크지않고 안잘리는데....흠..고민이네요

    0
  • tou
    357
    2019-06-27 10:36:26

    요상하네요... 하이브리드앱에서 개발할때도 json POST로 80000만바이트까지 넘겼었는데...

    0
  • 곰곰히생각해곰
    173
    2019-06-27 10:49:37

    tou 저도 다른 앱에서 할때는 몇만은 아니여도 몇천까지는 넘어왔었거든요.. 근데 요상하게 이 요청만 이러내요.

    0
  • 곰곰히생각해곰
    173
    2019-06-27 11:34:49

    tou 지금 넘어오는 문자열 길이를 측정해봤는데 3번정도 해서

    공백 포함3824자3943byte

    공백 포함3817자3939byte

    공백 포함3888자3975byte

    이렇게 나왔거든요. 4000바이트 단위로 뭐 끊는게 있나요?? 뭐지..

    0
  • tou
    357
    2019-06-27 13:21:32

    길이제한이라면 서버단에서 막는것은 있는걸로 아는데... 지식이 부족해서 다른부분은 모르겠네요...

    서버단에서 데이터는 잘받아주고 다시 클라이언트단으로 리턴시키는 과정에서 손실이 생기는거라.. 아이러니하네요

    0
  • 곰곰히생각해곰
    173
    2019-06-27 13:39:32

    tou 네.. 감사합니다!

    0
  • tou
    357
    2019-06-27 13:47:51

    한단계 한단계 다 검증 해보시는 수 밖에 없을 것 같습니다.ㅠㅠ

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.