2013-09-04 1 views
0

설명 :. 내가 QueryString을이 =내가 안드로이드에 초보자입니다 request.setURI

"http://www.google.com/Test/?Param1=ABC&Param2=DEF"; 내가 서버에이 QueryString을 (서버 요청을을 보낼에 asp.net 페이지에 변수 저장 매개 변수를 전달하려면 데이터 베이스).

그래서 이것을 GET을 사용하여 서버로 보내고 있습니다. 그리고이 일을 AsyncTask<String, Void, Long>

이 코드는 StackOverflow에 발견했다.

request.setURI(new URI(params[0])); 
response = client.execute(request); 
PARAMS에 어떤 가치

[0]과

response = client.execute(request); 변수를 보낼 것입니다 :

protected Long doInBackground(String... params) { 
     Long result = null; 
     HttpResponse response = null; 
     try {   
       HttpClient client = new DefaultHttpClient(); 
       HttpGet request = new HttpGet(); 
       request.setURI(new URI(params[0])); 
       response = client.execute(request); 
       result = 1L; 
      } catch (URISyntaxException e) { 
       e.printStackTrace(); 
      } catch (ClientProtocolException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
      return result; 
     } 

이러한 코드 2 개 라인을 설명해주십시오 (이 코드에 약간의 수정을 만들었습니다) 내 asp.net 페이지로?

편집 - 또 다른 질문 - 난에 다음 AsyncTask를

에 하나 이상의 문자열을 보내는 경우 각 HTTP를-GET 내가 '나'루프에 증가하여이 작업을 수행 할 수 있습니다 요청?

request.setURI(new URI(params[i])); 

답변

1

당신이 사용하기 전에 당신은 AsyncTask를 읽어해야합니다 : 그것은 동일 http://developer.android.com/reference/android/os/AsyncTask.html 자바의 마지막 값 (문자열 X ...)로 전달됩니다

params is an array that you pase to the AsyncTask: 
doInBackground(String... params)// String... params = String [] params 

response = client.execute(request);// yes it will... This line send your request to your service (php, c#, etc, etc)... and on your service you should handle the params your are passing 
+0

내가 작성한 편집을 참조하십시오. 두 개 이상의 String 매개 변수를 보낼 때 여러 HTTP-GET 요청을 보내는 방법을 알려주십시오. –

+0

DOCS : AsyncTasks는 짧은 작업 (몇 초 정도)에 이상적으로 사용해야합니다. – Tobiel

+0

그래서 당신은 HTTP-GET 요청을 보내기 위해 다른 것을 사용할 것을 제안합니까? –

1

말 (문자열 [] x) 배열을 전달합니다.

호출하는 프로 시저는 조금 다르지만 호출 할 때 문자열 배열을 전달하거나 문자열 배열로 만들 문자열 목록을 전달할 수 있습니다. ("B", "C"를 "A")

doInBackground하고 3 개 요소와 ARAY PARAMS []를 얻을 것이다 :

는 예를 들어 다음과 같이 상기 호출 할 수있다.

귀하의 질문 - PARAMS [0] "는"

1

request.setURI이 될 것입니다 (새 URI (PARAMS [0]));

params는 doInBackGround()의 가변 길이 매개 변수에 전달 된 모든 값을 포함하는 배열입니다. 매개 변수가 전달 된 순서에 해당하는 인덱스를 사용하여 원하는 매개 변수를 검색합니다.

응답 = client.execute (request);

이렇게 구성된 요청을 수행하고 서버 측과 상호 작용합니다.

1

당신이 작성하고 당신이에 매개 변수 (QueryString을) 줄 실행하기 위해 AsyncTask를 호출됩니다

protected Long doInBackground(String... params) {

제 (문자열 ... PARAMS는) 함수가 0 개 이상을 가질 수 있음을 의미 문자열 값이므로 doInBackground에 문자열을 지정할 때마다 문자열 배열 (이 경우에는 QueryString)을받습니다. Querystring을 얻으려면 params [0]을 사용할 수 있습니다.

response = client.execute(request); 

이것은 생성 된 요청을 실행하고 응답 객체에서 응답을 얻습니다.