android Http통신할때 Header값 JSONObject로셋팅

조회수 3130회

제목 그대로 입니다.. 검색을 해봐도 헤더값 셋팅할때 setRequestProperty로 (String, String)만 넣을수가 있던데. JSON형식으로 넣어서 요청하는 방법이 있나요? Body부분 말고 Header부분 입니다.

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기
    String jsonData= "{\"name\":\"sunwookim\",\"age\":26,\"position\":\"Developer\"}";
    
    setRequestProperty("jsonData", jsonData);
    

    이런 식으로 json의 형태를 가진 스트링 값으로 보내면 됩니다. (json데이터를 스트링으로 만드는 방법은 위와 같은 방법 말고도 많습니다.)

    서버에서 파싱을 해야하긴 하겠지만요.

    아래는 예시인데요. gson 이랑 okhttp 라이브러리를 사용했습니다.

    메서드는 다르지만 원리는 같습니다.

    Client :

           HttpUrl httpUrl = new HttpUrl.Builder()
                    .scheme("http")
                    .host(url)
                    .port(8081)
                    .addPathSegment("test")
                    .build();
    
            Request post = new Request.Builder()
                    .url(httpUrl)
                    .header("jsonData", "{\"name\":\"sunwookim\",\"age\":26,\"position\":\"Developer\"}")
                    .build();
    
            getResponse(post);
    

    Server :

            String jsonData = request.getHeader("jsonData");
            JsonElement contents = new JsonParser().parse(jsonData);
            System.out.println(contents.getAsJsonObject().get("name").getAsString());
            System.out.println(contents.getAsJsonObject().get("age").getAsInt());
            System.out.println(contents.getAsJsonObject().get("position").getAsString());
    
    • 감사합니다 ㅎㅎㅎ 손진우 2016.12.1 18:37

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)