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

http 통신 오류... 고수님들 부탁드려요

0 추천

웹 서버에 요청해서 응답으로 XML을 받아서 처리하는 간단한 앱을 만드는중입니다.

public static NodeList getList(int id) {

  String url = "/getlist.aspx";
  url+= "?cate=";
  url+= id;
  final HttpGet get = new HttpGet(url);
  HttpEntity entity = null;
  HttpResponse response = null;
  try {
   final HttpHost host = new HttpHost("xxx.xx.xx.xxx", 5555, "http");
   response = HttpManager.execute(host, get);
   entity = response.getEntity();
  }
  catch (IOException e2) {
   e2.printStackTrace();
   return null;
  }
  
  if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
   return null;
  }

// XML 파싱 처리

... ...

 

위 부분에서

   response = HttpManager.execute(host, get);

여기서 멈추어서 서버에서 응답을 받지 못하는 경우가 있는데 원인을 도저히 못찻겠어요...ㅠㅠ

디버그 해서 보면 위 라인까지 실행되고 F6건을 누르면 다음 라인으로 넘어가지 않아요...

제대로 될때도 있고 안될때도 있고...이것때문에 몇일동안 삽질중...:(

웹서버에는 부하가 없고요.. 브라우저로 호출해보면 멈추거나 응답이 늦는 경우가 없거든요...

 

고수님들 도와주세요. ^_^

지미라 (4,330 포인트) 님이 2013년 5월 25일 질문
고수님들 좀 도와줘요...:(
혹시 이 문제 해결하셨나요?

1개의 답변

0 추천
이렇게 한번해보시죠..

 

HttpClient httpclient = new DefaultHttpClient();

String Url = xxx.xxx.xxx.xxx : port ;

HttpPost httppost = new HttpPost(Url);

List<BasicNameValuePair> params = new ArrayList<BasicNameValuePair>(); << param값은 보낼실데이터를 입력하

는곳입니다.

params.add(new BasicNameValuePair("웹에서받을값", 안드로이드 상의값));

UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params, "euc-kr");

httppost.setEntity(ent);

// 요청하는부분

HttpResponse reponse = httpclient.execute(httppost);

// 받는부분

HttpEntity entity = response.getEntity();

젤좋은방법은 InputStream에 담아서 보내고 InputStream 값으로 값여부를 체크하는 방법이 좋습니다!

궁금하신점 있으시면 댓글달아주세요!
안드로메다개발자 (8,830 포인트) 님이 2013년 5월 31일 답변
...