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

웹과의 통신 질문있습니다.

0 추천

어떤 웹 서버가 돌고 있습니다.

 

안드로이드 앱에서 http connect를 하고

 

이 서버를 향해 url 주소를 뿌려주기만 하면 되는데 방법을 모르겠습니다..

 

이해가기 쉽게..

 

http://126.10.20.1/ 이라는 웹 서버가 동작하고 있고 여기에

 

http://126.10.20.1/exam.cgi?control=1 이라는 값이 전송 되면 되는데..

 

웹 화면에서는 a 링크를 이용하여 <a href=exam.cgi?control=1>

 

이렇게 구현이 되어있는데 앱에서도 저 기능을 구현하고 싶습니다..

 

조언 부탁드립니다..

 

익명사용자 님이 2014년 1월 10일 질문
http://126.10.20.1/exam.cgi?control=1  이걸 보내면, 서버로부터 어떤 응답이 오나요? json이나 xml 같은 결과가 오는걸 받고 싶은지, 아니면 그냥 웹페이지가 바뀌는 동작을 하고 싶은지 궁금합니다.
음 이 버튼이 switch 버튼이라 어떤 디바이스의 모드가 변경되는 것입니다. 1모드 였다가 저 버튼을 누르게 되면 2번 모드로 변경되는..
웹에서는 <a href=exam.cgi?control=1> 이라는 버튼으로 구현이 되어 있는데요.. 이걸 앱에서도 처리할수 있게 하고 싶습니다.
저 url을 호출하면 서버에서는 어떤 동작을 하나요? 어떤 결과를 주는건지, 아니면 보내기만 하면 끝인지요.
서버에서는 저 url 메세지만 보내고 끝납니다.
디바이스 자체의 펌웨어에서 그 url을 받아서 모드 변경이 되는 것 같습니다.
그럼 보내기만 하면 끝나는 건가요? http post나 http put 예제는 찾아보셨나요?
네..ㅠ 찾아보았는데.. form action을 이용해서
BasicNameValuePair하는 방법밖에 모르겠습니다..ㅠ
name값과 value을 이용해서 전송하는 방법인데.. 이걸로는
주소 값을 보냈을때 아무런 반응이 없어서..

1개의 답변

0 추천

질문이 어려워서 이해는 안됩니다.

브라우저에서는 분명 저 링크를 누르면 어떤 동작을 할텐데, 앱에서는 그냥 보내기만 하면 될리가 없을 것 같거든요.

 

제가 쓰는 http 클래스입니다.

 

import java.io.BufferedReader;
import java.io.IOException;

import org.apache.http.HttpResponse;
import org.apache.http.HttpVersion;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.apache.http.params.HttpProtocolParams;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

import android.content.Context;
import android.util.Log;

public class HttpHelper
{
   protected Context _context;
   protected DefaultHttpClient _client;
   protected static final int DEFAULT_TIME_OUT = 6000;
   
   
   public HttpHelper(Context $context)
   {
      this($context, DEFAULT_TIME_OUT);
   }
   
   
   public HttpHelper(Context $context, int $timeout)
   {
      _context = $context;
      
      HttpParams params = new BasicHttpParams();
      HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
      HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);
      // --response time-out 설정
      HttpConnectionParams.setSoTimeout(params, $timeout);
      HttpConnectionParams.setConnectionTimeout(params, $timeout);
      _client = new DefaultHttpClient(params);
   }
   
   
   private void closeConnections()
   {
      if (_client != null)
         _client.getConnectionManager().closeExpiredConnections();
   }
   
   
   public String requestPost(String $hostAddr, String $content)
   {
      String kResult = null;
      BufferedReader kReader = null;
      try
      {
         HttpPost kRequest = new HttpPost($hostAddr);
         
         kRequest.setHeader("Content-Type", "application/json");
         kRequest.setHeader("Connection", "Close");
         kRequest.setHeader("Authorization", "key=AIzaSyBRIejtalg7F3JaCKAg54C438u9ihfbhZk");
         StringEntity kStringEntity = new StringEntity($content, HTTP.UTF_8);
         
         kRequest.setEntity(kStringEntity);
         
         HttpResponse kResponse = _client.execute(kRequest);
         kResult = EntityUtils.toString(kResponse.getEntity());
         
         Log.i("HttpHelper.java | requestPost", "|" + "request post response : " + kResult + "|");
      }
      catch (Exception $e)
      {
         $e.printStackTrace();
      }
      finally
      {
         if (kReader != null)
         {
            try
            {
               kReader.close();
            }
            catch (IOException $e)
            {
            }
         }
      }
      closeConnections();
      return kResult;
   }// Method
}

 

쎄미 (162,410 포인트) 님이 2014년 1월 20일 답변
...