마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Httpurlconnection, json 데이터를 서버전송시 에러가 납니다 ㅠㅠ. [closed]

0 추천
안녕하세요

앱에서 서버에 접근하는 부분이 굉장히 많습니다.

여태까지 다양한 형태의 json을 만들어서 보냈었습니다.

그리고 여태까지 잘 전송했었구요..

 

이번에 새로 다시 json으로 보낼 데이터가 있어서 서버에 접근을 하는데

500에러가 뜨는데.. 어디가 문제인지 도저히 모르겠습니다..

{

"key1":"value1",

"key2":value2(int),

"key3":{"key4":"value3", "key5":"value5"}

}

이번에 이런식으로 데이터를 보내야해서 저 모양대로 그대로 만들어서 서버에 보냈습니다.

 

그런데 알수없는 500에러가 뜹니다.

아무래도 key3 부분에서 문제가 생긴것 같습니다..

 

기존에

{

"key1":"value1",

"key2":value2(int),

}

key3을 제외한 형태의 json 데이터를 보낼때는 문제가 없었습니다.

 

그런데 이번에 처음으로 JSONObject 안에 JSONObject를 넣어서 보내려니 에러가 발생한것 같습니다.

 

문제를 하나하나 찾아봤는데, 문제점은 Media type인것 같습니다.

안드로이드에서가 아닌 Django에서 저 제이슨 형태로 보냈을때는 서버 ok가 떴습니다.

 

그래서 setRequestProperty가 문제인것 같은데 한번 봐주시면 감사하겠습니다.

 

현재 제 코드에는 이렇게 되어있습니다(Django에서 테스트 할때 application/json로 보냈을때 성공했습니다)

httpURLConnection.setRequestProperty("Accept", "application/json");
httpURLConnection.setRequestProperty("Content-Type", "application/json");
httpURLConnection.setRequestProperty("cache-control", "no-cache");
httpURLConnection.setRequestProperty("cache-length", "length");

 

보내는거는 String으로 직접 만들어서 보냅니다

 

String requestData = {"~~~~~~"} //위와 똑같이 만들어서 보냅니다(JSONObject 클래스로는 안만들고있습니다)
os = new BufferedOutputStream(httpURLConnection.getOutputStream());
os.write(requestData.getBytes());
os.flush();

 

다른 JsonArray안에 JsonObject, JsonArray안에 (JsonArray+JsonObject) 등등의 형태를

보냈을때는 문제가 발생한적이 한번도 없었습니다..

 

그런데 이번에 JsonObject 안에 JsonObject가 들어있을때만 문제가 발생합니다.

 

읽어주셔서 감사합니다..
질문을 종료한 이유: 실수가 있었습니다..
익명사용자 님이 2017년 9월 8일 질문
2017년 9월 8일 closed
...