通过昨天的具体实践,已成功与服务器进行连接,并读取数据。现对昨天的工作总结如下:
1.服务器端
由于我对基于.NET的服务器端开发比较熟悉,所以在服务器端我采用基于.NET的asp.net模式。具体代码如下:
protected void Page_Load(object sender, EventArgs e)
{
//获取android发送给服务器的参数
if (null == Request["type"])
return;
switch (Request["type"])
{
case "Search":
searchDate();
break;
}
}
下面是SearchDate具体实现方法:
if (null == Request["json"]) return;
//读取android传递给服务器的参数
string bookname = Request["json"];
if (bookname != null)
{
Response.Write(sc.GetBookSearchResult(bookname));
}
2.客户端
// TODO Auto-generated method stub
HttpPost httppost = new HttpPost(URL);
//定义参数
List<NameValuePair> pair = new ArrayList<NameValuePair>();
pair.add(new BasicNameValuePair("type","Search"));
pair.add(new BasicNameValuePair("json", SearchContent.getText().toString()));
try {
//网页编码转化中文处理
httppost.setEntity(new UrlEncodedFormEntity(pair,"UTF-8"));
HttpClient httpclient = new DefaultHttpClient();
HttpResponse resp = httpclient.execute(httppost);
//Log.i("response",Integer.toString(resp.getStatusLine().getStatusCode()));
//判断客户端与服务器端是否成功连接
if (resp.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
{
//获取从服务器端返回的数据
String strResult = EntityUtils.toString(resp.getEntity());
Log.i("strresult", strResult);
//利用JSONArray存储数据
JSONArray array = new JSONArray(strResult);
for(int i=0;i<array.length();i++)
{
JSONObject dataJson = array.getJSONObject(i);
Log.i("ISNG", dataJson.getString("bookname"));
}
}
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}