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


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

  • 2016년 11월 30일에 작성됨

조회수 63


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월 01일에 작성됨
    Software Engineer

  • 감사합니다 ㅎㅎㅎ     손진우   2016.12.1 18:37     

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close