安卓项目3
这几天一直在为一个问题纠结...这是一个连接服务器的类,提供不同的参数返回不同的结果。
1 public final class ServiceLink { 2 /* 3 功能:连接服务器 4 API:link(String url); 5 get(String bundle, String value); 6 */ 7 static InputStream is = null; 8 static JSONObject jObj = null; 9 static String json = ""; 10 private HttpResponse httpResponse =null; 11 private String url = null; 12 HttpPost httpPost = new HttpPost(url); 13 14 ServiceLink(){ 15 Log.i("linkService", "ServiceLink"); 16 17 } 18 public void setURL(String urll){ 19 this.url = urll; 20 Log.i("setURL",url); 21 } 22 public JSONObject serviceLogin(String hostname,String username, String password){ 23 List<NameValuePair> params = new ArrayList<NameValuePair>(); 24 params.add(new BasicNameValuePair("operate","login")); 25 params.add(new BasicNameValuePair("hostname", hostname)); 26 params.add(new BasicNameValuePair("username",username)); 27 params.add(new BasicNameValuePair("password", password)); 28 return putParamsToHttp(params); 29 30 } 31 public JSONObject serviceClean(){ 32 List<NameValuePair> params = new ArrayList<NameValuePair>(); 33 params.add(new BasicNameValuePair("operate", "clean")); 34 return putParamsToHttp(params); 35 } 36 37 38 public JSONObject putParamsToHttp(List<NameValuePair> params){ 39 try { 40 //设置httpPost请求参数 41 httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8)); 42 // 43 httpResponse = new DefaultHttpClient().execute(httpPost); 44 if(httpResponse.getStatusLine().getStatusCode() == 200){ 45 HttpEntity httpEntity = httpResponse.getEntity(); 46 is = httpEntity.getContent(); 47 48 } 49 } catch (UnsupportedEncodingException e) { 50 // TODO Auto-generated catch block 51 Log.i("linkService", "Link failed"); 52 } catch (ClientProtocolException e) { 53 // TODO Auto-generated catch block 54 Log.i("linkService", "Link failed"); 55 } catch (IOException e) { 56 // TODO Auto-generated catch block 57 Log.i("linkService", "Link failed"); 58 } 59 try { 60 BufferedReader reader = new BufferedReader(new InputStreamReader( 61 is, "UTF-8")); 62 StringBuilder sb = new StringBuilder(); 63 String line = null; 64 while ((line = reader.readLine()) != null) { 65 sb.append(line + "\n"); 66 } 67 is.close(); 68 json = sb.toString(); 69 } catch (Exception e) { 70 Log.e("Buffer Error", "Error converting result " + e.toString()); 71 Log.d("json", json.toString()); 72 } 73 74 // try parse the string to a JSON object 75 try { 76 jObj = new JSONObject(json); 77 } catch (JSONException e) { 78 Log.e("JSON Parser", "Error parsing data " + e.toString()); 79 } 80 81 // return JSON String 82 return jObj; 83 84 } 85 }
我在activity下写一个按键提交,代码如下
public void onClick(View view) { // TODO Auto-generated method stub Log.i("login","reading JSON!"); String hostnamestring = hostname.getText().toString(); String usernamestring = username.getText().toString(); String passwordstring = password.getText().toString(); JSONObject jsonobject= new JSONObject(); ServiceLink servicelink = new ServiceLink(); servicelink.setURL(hostnamestring); jsonobject = servicelink.serviceLogin(hostnamestring, usernamestring, passwordstring); Log.i("login",jsonobject.toString()); }
但是会出错
好吧...我继续看为什么会这样....郁闷