关于Android中用HttpURLConnection与Struts2之间的通信有关问题

关于Android中用HttpURLConnection与Struts2之间的通信问题
如题,我在android中通过一下代码与Struts2的Action类通信,不懂怎么把Json数据传到服务器端的Action?经过debug发现到了(A)、(B)处都不能连接到服务器端,而(C)处则能够成功连接到服务器端的Action类,并且Action类有反应,服务器端的Action类在运行完后也能返回到android程序端继续运行,但是json数据为什么就是无法传递?输入输出流还是无法取得数据,请哪个朋友帮忙看下,谢谢。

android程序端的代码:
public static boolean getURLConn(String urlString,String[] keys,String[] values){
boolean isTrue=false;
URL url;
HttpURLConnection conn=null;
try {
url = new URL(urlString);
conn=(HttpURLConnection)url.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
  // 设置以POST方式
conn.setRequestMethod("POST");
  // Post 请求不能使用缓存
conn.setUseCaches(false);
conn.setInstanceFollowRedirects(true);  
conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
  conn.connect(); -------------------------(A)
String jsonStri=getJsonString(keys,values); 此处是把数据转化成json数据类型的字符串
OutputStream os=conn.getOutputStream(); -------------------------(B)
DataOutputStream dos=new DataOutputStream(os);
dos.writeBytes("jsonStri="+jsonStri);
dos.flush();
dos.close();

InputStream is=conn.getInputStream();--------------------------(C)
InputStreamReader reader=new InputStreamReader(is);
String jsonStr="";
int r=0;
while((r=reader.read())!=-1){
jsonStr+=(char)r;
}
System.out.println("---------------------"+jsonStr);
JSONObject json=new JSONObject(jsonStr);
isTrue=json.getBoolean("action");

is.close();
reader.close();

} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
conn.disconnect();
return isTrue;
}


服务器端的Action类代码:

public String login() {
try {
InputStream is=request.getInputStream();
InputStreamReader reader=new InputStreamReader(is);
BufferedReader br=new BufferedReader(reader);
String jsonStr="";
int r=0;
while((r=reader.read())!=-1){
System.out.println(r);
jsonStr+=(char)r;
}
JSONObject json=new JSONObject(jsonStr);
String name=json.getString("name").trim();
String pass=json.getString("pass").trim();

if (name != null && pass != null) {
String[] values = { name, pass };
String sql = "select *from student where name=? and password=?";
JSONObject json1=new JSONObject(jsonStr);
if(query(sql,values)){ 此处是查询数据库,返回boolean类型数据
json1.put("action", true);
}
else 
json1.put("action", false);
 
response.reset();
response.resetBuffer();
response.getOutputStream().write(json1.toString().getBytes());
response.getOutputStream().flush();
}
is.close();
reader.close();
br.close();
response.getOutputStream().close();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return Action.SUCCESS;
}


------解决方案--------------------
用pc张的工具抓一下http的包,然后按照这个包来操作即可。