2013-03-22 2 views
0

취급 여기에 HTTP 요청 전송 내 코드입니다 : 파일 test.php의안드로이드 HTTP 응답

package com.example.database; 

import java.io.IOException; 
import java.io.InputStream; 
import java.util.ArrayList; 
import java.util.List; 

import org.apache.http.HttpResponse; 
import org.apache.http.NameValuePair; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.ResponseHandler; 
import org.apache.http.client.entity.UrlEncodedFormEntity; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.entity.StringEntity; 
import org.apache.http.impl.client.BasicResponseHandler; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.message.BasicHeader; 
import org.apache.http.message.BasicNameValuePair; 
import org.apache.http.params.HttpConnectionParams; 
import org.apache.http.protocol.HTTP; 
import org.json.JSONObject; 

import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 
import android.os.Looper; 
import android.util.Log; 
import android.widget.Toast; 

public class post extends Activity{ 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    postData(); 
} 


public void postData() { 
    // Create a new HttpClient and Post Header 
    HttpClient httpclient = new DefaultHttpClient(); 

    HttpPost httppost = new HttpPost("http://192.168.83.1/test.php"); 

    try { 
     // Add your data 
     List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); 
     nameValuePairs.add(new BasicNameValuePair("id", "12345")); 
     nameValuePairs.add(new BasicNameValuePair("stringdata", "Hi")); 
     httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); 

     // Execute HTTP Post Request 
     ResponseHandler<String> responseHandler=new BasicResponseHandler(); 

     String responseBody = httpclient.execute(httppost, responseHandler); 
     Log.d("test", responseBody); 
     // Toast.makeText(getApplicationContext(), responseBody, Toast.LENGTH_LONG).show(); 

    } catch (ClientProtocolException e) { 
     // TODO Auto-generated catch block 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
    } 
} 

내용을은 다음과 같습니다

<?php 

echo"works"; 

?> 

Log.d를 ("테스트" , responseBody); 태그가 LogCat에 표시되지 않습니다. 그러나 몇 줄 (responseBody 이전)으로 이동하여 정적 텍스트를 넣으면 작동하지 않습니다.

HTTPRequest에 문제가 있습니까? 어떻게 해결할 수 있습니까?

고마워요!

+0

PHP 테스트 정적 HTML을 먼저 사용하는 대신 test.php에 "Works"를 추가하고 powtac

답변

6

BasicResponseHandler를 제거한 후에 시도하십시오. 작동해야합니다. perityuler 허락을 위해 Menifest에 체크인하십시오.

HttpResponse response = httpclient.execute(httppost); 
String responseBody = EntityUtils.toString(response.getEntity()); 
+0

게시 한 내용에 오류가있는 것 같습니다. 여러 오류가 발생했습니다. httpClient.execute (httpost); eclipse에 따라 문자열을 반환하지 않습니다. – Anant

+0

죄송합니다. 제 실수였습니다. 나는 여기에 하나의 lile 작성하는 것을 잊지 .. 나는 내 대답을 업데이 트 .. – Ajay