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

내용 검색시 빈공간 질문

0 추천






new GetBoardTextBySubject().execute(search_con); // 제목으로검색
//search_con은 검색내용입니다


class GetBoardTextBySubject extends
   AsyncTask<String, Void, List<BoardText>> {

  @Override
  protected List<BoardText> doInBackground(String... params) {
   // TODO Auto-generated method stub
   RestClient_search rcs = new RestClient_search();
   return rcs.getBoardTextBySubject(params[0]);
  }

  @Override
  protected void onPostExecute(List<BoardText> result) {
   // TODO Auto-generated method stub
   super.onPostExecute(result);
   boardTextList.clear();
   boardTextList.addAll(result);
   boardTextListAdapter.notifyDataSetChanged();
  }

 }

---------------------------------------------------------------------------------------------------------------
RestClient_search.class


public List<BoardText> getBoardTextBySubject(String subject) {
  HttpGet httpGet = new HttpGet(
    "http://192.168.0.31:8080/Spring_MVC/rest/getBoardTextBySubject/subject/"
      + subject);

  List<BoardText> list = new ArrayList<>();

  try {
   HttpResponse response = httpClient.execute(httpGet);
   StringBuilder sb = new StringBuilder();
   BufferedReader br = new BufferedReader(new InputStreamReader(
     response.getEntity().getContent()));

   XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
   XmlPullParser parser = factory.newPullParser();
   parser.setInput(br);

   int parserEvent = parser.getEventType();
   BoardText boardText = null;
   boolean itemFlag = false;
   String tagName = null;

   while (parserEvent != XmlPullParser.END_DOCUMENT) {
    if (parserEvent == XmlPullParser.START_TAG) {
     tagName = parser.getName();
     if (tagName.equalsIgnoreCase("boardText")) {
      boardText = new BoardText();
      itemFlag = true;
     }
    } else if (itemFlag && parserEvent == XmlPullParser.TEXT) {
     if (tagName.equalsIgnoreCase("author")) {
      boardText.setAuthor(parser.getText());
     } else if (tagName.equalsIgnoreCase("content")) {
      boardText.setContent(parser.getText());
     } else if (tagName.equalsIgnoreCase("hit")) {
      boardText.setHit(Integer.parseInt(parser.getText()));
     } else if (tagName.equalsIgnoreCase("id")) {
      boardText.setId(Integer.parseInt(parser.getText()));
     } else if (tagName.equalsIgnoreCase("subject")) {
      boardText.setSubject(parser.getText());
     } else if (tagName.equalsIgnoreCase("love_hit")) {
      boardText
        .setLove_hit(Integer.parseInt(parser.getText()));
     }
    } else if (parserEvent == XmlPullParser.END_TAG) {
     tagName = parser.getName();
     if (tagName.equalsIgnoreCase("boardText")) {
      list.add(boardText);
      itemFlag = false;
     }
    }
    parserEvent = parser.next();
   }
  } catch (ClientProtocolException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (XmlPullParserException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  return list;

 }

검색할때

ex)안녕 하세요

안녕과 하세요 사이에 빈공간이 있을시에 에러가나는데 어떻게 고쳐야할까용 ㅠㅠ

취준생이라 질문할곳이 이곳밖에 없네용 ㅎㅎ

 

도움 부탁드려요

비공개 님이 2014년 11월 13일 질문

1개의 답변

0 추천
에러내용이 어떤것인지는 자세히모르겠찌만....ㅎㅎ

 

제 경험상

GET으로 파라미터를 보낼때는 공백은 %20으로 치환하여 보내면 해결되었던 것으로 기억합니다. ㅎㅎ

 

웹 서버의 소스까지 컨트롤이 가능하시다면 공백은 '_'(언더바) 와 같은것으로 치환하는 것으로 서로 약속을 하고

안드로이드에서 "안녕_하세요" 와 같은 형식으로 보내면

웹서버에서 받을때 '_'를 공백으로 치환해주는 작업을 수행하면 되지 않을까요?
안드로이드로우 (15,740 포인트) 님이 2014년 11월 13일 답변
...