안드로이드 폰과 서블릿간의 데이터 주고받는 연습을 하고 있습니다.
그런데, httpresponse 이부분이 실행이 안되고 있습니다.
서블릿은 웹페이지를 통해서는 post문을 실행하는것을 확인했는데요.
책을 보고해도 잘 모르겠습니다. 아시는분 답변 부탁 드립니다.
소스코드와 에러추가 합니다.
package ac.awst.findposition;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class Menu extends Activity implements OnClickListener{
/** Called when the activity is first created. */
Button btnstart;
TextView state;
TextView showlist;
TextView appsub;
Button btnstop;
// private Button checkButton;
WifiManager wm;
List<ScanResult> mScanResults;
private int foundCount=0;
private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if(action.equals(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION)) {
//mScanResults = wm.getScanResults();
getWifiScanResult();
wm.startScan();
//mListAdapter.notifyDataSetChanged();
} else if (action.equals( WifiManager.NETWORK_STATE_CHANGED_ACTION)) {
sendBroadcast( new Intent( "wifi.ON_NETWORK_STATE_CHANGED"));
}
}
};
public void getWifiScanResult() {
mScanResults = wm.getScanResults();
foundCount = mScanResults.size();
state.setText("scan count is \t" + ++foundCount + " \t APs");
showlist.setText("\n");
showlist.append("===============================\n");
for ( int i=0 ; i < mScanResults.size() ; i++) {
ScanResult result = mScanResults.get(i);
showlist.append((i+1) + ".SSID : " +result.SSID.toString() + "\t\t RSSI : " +result.level + "dBm\n");
}
showlist.append("===============================\n");
}
@Override
public void onStart() {
super.onStart();
final IntentFilter filter = new IntentFilter( WifiManager.SCAN_RESULTS_AVAILABLE_ACTION);
filter.addAction(WifiManager.NETWORK_STATE_CHANGED_ACTION);
registerReceiver(mReceiver, filter);
}
public void initWIFIScan() {
state.setText("Scanning ... ");
wm.startScan();
postData("AWST");
}
public void StopWIFI() {
//super.onPause();
state.setText("stop scanning");
unregisterReceiver(mReceiver); // unregister Broadcast
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_menu);
btnstart = (Button)findViewById(R.id.startWifi);
btnstop = (Button)findViewById(R.id.stopWifi);
state = (TextView)findViewById(R.id.status);
showlist = (TextView)findViewById(R.id.showlist);
appsub = (TextView)findViewById(R.id.textView1);
btnstart.setOnClickListener(this);
btnstop.setOnClickListener(this);
wm = (WifiManager)Menu.this.getSystemService(WIFI_SERVICE);
if (wm.isWifiEnabled() == false)
wm.setWifiEnabled(true);
appsub.setText("WIFI Scanner");
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.startWifi) {
initWIFIScan();
}
if(v.getId() == R.id.stopWifi) {
StopWIFI();
}
}
//////////////////////////HTTP POST///////////////////////////////////////////
String result =null;
public void postData(String input) {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://128.134.51.42:8888/ServletTest/BBSPostServlet");
try{
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("name",input));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
System.out.println("33333333333");
HttpResponse response = httpclient.execute(httppost);
System.out.println("44444444444");
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
System.out.println("55555555555");
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while((line = reader.readLine()) != null) {
sb.append(line).append("\n");
}
is.close();
result = sb.toString();
Toast.makeText(Menu.this, result,Toast.LENGTH_LONG).show();
} catch(IOException e) {
} finally {
httpclient.getConnectionManager().shutdown();
}
}
}